Solucionado (ver solução)
Solucionado
(ver solução)
8
respostas

Continuo logado, mesmo após sair da página por mais de 2minutos

Continuo logado, mesmo após 2 minutos, sair da página, desligar xampp.... coloquei os mesmo "time() + 60" do vídeo

8 respostas

Robson, mostra o código pra gente por favor? Tanto o de login, quanto o de logout

.......

index.php

< ? php include("cabecalho.php"); //Inclui o cabecalho
include("logica-usuario.php"); //Inclui as logicas 
?>

<!--Mapeia o login, se está correto ou não o usuário e senha-->
< ? php if(isset($_GET["login"]) && $_GET["login"]==true) { ?>
    <p class="alert-sucess">Logado com sucesso!</a>
    <?php }?>

    <?php if(isset($_GET["login"]) && $_GET["login"]==false) { ?>
        <p class="alert-danger"> Usuário ou senha inválida!</a>
        <?php  }?>
    <!--<?php /*if(isset($_GET["falhaDeSeguranca"]) && $_GET["falhaDeSeguranca"]==true) */{ ?>
        <p class="alert-danger"> Você não tem acesso a essa funcionalidade!</a>
        <?php }?> 
    -->
    <?php if(isset($_GET["falhaDeSeguranca"]) && $_GET["falhaDeSeguranca"]==true) { ?>
        <p class="alert-danger"> Você não tem acesso a essa funcionalidade!</a>
        <?php  }?>
        <!--code...-->
        <h1>Bem vindo!</h1>

        <?php if(usuarioEstaLogado()) {?>
            <p class="text-sucess">Você está logado como <?= usuarioLogado()?>.</p>
        <?php }else {?>
            <!--<?php /*if(!isset($_COOKIE["usuario_logado"])) {?>
                <p class="text-sucess">Você está logado como
                    <?=$_COOKIE["usuario_logado"] ?>.</p>
                <?php } else */{?>
                    -->
                    <!--Cria Login-->
                    <h2>Login</h2>
                    <form action="login.php" method="post">
                    <table class="table">
                    <tr>
                    <td>Email</td>
                    <td><input  class="form-control" type="email" name="email" ></td>
                    </tr>
                    <tr>
                    <td>Senha:</td>
                    <td><input class="form-control" type="password" name="senha"></td>
                    </tr>
                    <tr>
                    <td><button class="btn btn-primary" type="submit">Login</button></td>
                    </tr>
                    </table>
                    </form>
                <?php } ?> 

            <?php } ?> 
            <?php include("rodape.php"); ?>

login.php

< ? php 

include("conecta.php"); //Inclui o banco de dados
include ("banco-usuario.php"); //inclui o banco do usuario
include("logica-usuario.php"); //Inclui as logicas 

$usuario = buscaUsuario($conexao, $_POST["email"], 
$_POST["senha"]); //busca o usuário no BD

if($usuario == null) {
    header("Location: index.php?login=0");//não logado
}else {
    logaUsuario($usuario["email"]);
    header("Location: index.php?login=1");//logado
}

die(); //manda o usuário para o processo

#var_dump($usuario) ;  //mostra o resultado para confirmar se buscou
?>

Oi Robson, acho que não fui claro, me referi ao arquivo que tem as funções: logaUsuario e outras. Se não me engano é o logica-usuario.php é isso? Cola o código dele aqui.

logica-usuario

< ! -- Se o COOKIE não estiver setado, pare.-->
<?php 
function usuarioEstaLogado() {
    return isset($_COOKIE["usuario_logado"]);
}

function verificaUsuario(){
    if(!usuarioEstaLogado()) {
        header("Location: index.php?falhaDeSeguranca=true");
        die();
    }
}

function usuarioLogado() {
    return $_COOKIE["usuario_logado"];
}

function logaUsuario($email) {
    setcookie("usuario_logado", email, time() + 60);
}
solução!

Oi Robson, muito provavelmente tá acontecendo algum erro na criação do cookie, veja, você esqueceu o cifrão da variável email no setcookie.

Veja se com essa alteração, o problema é resolvido.

RESOLVIDO!!!

Obrigado. tirou uma árvore dos trilhos hehe.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software