Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Problemas com SESSION


Regis Lacerda

Pergunta

Bom dia pessoal...

Estou com um problema com relação as SESSIONs num sistema de login que estou desenvolvendo...

Eu tenho a index.php que nela só tem dois includes dentro de um if/else, se não tiver a SESSION ocorre o include no login.php caso tenha a SESSION ocorre o include no home.php

Quando o usuário é direcionado para o login.php no action do form existe a chamada ao arquivo auth.php que é responsável por realizar op login... Caso autentique, direciona para a home.php, caso não autentique, direciona para a index.php, como a SESSION não foi iniciado ele cai no include do login.php...

Porém, o problema é exatamente quando autentica...

A SESSION não é passada, caso autentique e o usuário seja direcionado para a home.php, se eu digitar direto no navegador index.php, ele volta para a index direcionando para o login.php, ou seja, a SESSION de alguma forma não sai do auth.php.

Vamos aos arquivos...

index.php

<?php
    include('classes/DB.class.php');
    
    if(!isset($_SESSION['login'])){
        include('login.php');
        exit();
    }else{
        include('home.php');
    }
    
    
?>
login.php
<?php
    if(!isset($_SESSION))
        session_start();
        
    $token             = md5(uniqid(rand()));
    $_SESSION['token'] = $token;
?>

<!DOCTYPE HTML>

<html lang="pt-br">
<head>
    <link rel="stylesheet" type="text/css" href="css/estilo.css" />
</head>

<body bgcolor="#eeeeee">
    <form action="auth.php" method="post">
        <div style="position:absolute; top:25%; left:60%; width:20%; height:auto;">
            <table border="0" cellspacing="0" cellpadding="0">
                <tr align="center">
                    <td><span id="text" >Nome de Usuário</span><br></td>
                </tr>
                <tr align="center">
                    <td><input id="inputText" type="text" name="usuario" /><br></td>
                </tr>
                <tr align="center">
                    <td><span id="text" >Senha</span><br></td>
                </tr>
                <tr align="center">
                    <td><input id="inputText" type="password" id="inputText" name="senha" /><br></td>
                </tr>
                <tr><td> </td></tr>
                <tr align="center">
                    <input type="hidden" name="token" value="<?php echo $_SESSION['token'] ?>" />
                    <td><input type="submit"  id="inputSubmit" value="Acessar" /></td>
                </tr>
            </table>
        </div>
    </form>
</body>
</html>
auth.php
<?php
    
    include('classes/DB.class.php');
    
    if(!isset($_SESSION))
        session_start();
    
     echo '<pre>';
     print_r($_POST);
     print_r($_SESSION);
     
    if($_POST){
        if($_SESSION['token'] == $_POST['token']){
            
            $usuario = trim($_POST['usuario']);
            $senha   = trim($_POST['senha']);
            $senha   = md5($senha);
            
            try{
                $sql = 'SELECT * FROM login WHERE login = ? AND senha = ? 
                        AND ativo = 1';
                
                $query = DB::getConn()->prepare($sql);
                $query->execute(array($usuario,$senha));
                
                if($query->rowCount() == 1){
                    $result = $query->fetch();
                    $_SESSION['login'] = $result;
                    
                    header('location: home.php');
                }else if($query->rowCount() == 0){
                    header('location: index.php');
                }
            }catch(PDOException $e){
                echo $e->getMessage() . '<br>';
                echo $e->getTrace() . '<br>';
            }
        }
    }else{
        include('500.php');
    }

A home.php por enquanto é irrelevante...

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...