• 0
Sign in to follow this  
Regis Lacerda

(Resolvido) Problemas com SESSION

Question

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...

Share this post


Link to post
Share on other sites

2 answers to this question

Recommended Posts

  • 0

Na index.php você não está iniciando a sessão com o session_start();

Share this post


Link to post
Share on other sites
  • 0

Bom dia ESerra...

Muito obrigado cara, resolveu o meu problema, eu estava também com problemas no logout.php mas era só incluir o session_start nele q resolvia!!!

Vlws...

Tenha um bom dia!!!

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this