1
resposta

Notice: undefined index: usuario_logado

Estou com um problema com a SESSION. Toda vez que uso o metodo: usuarioEstaLogado(), o retorno parece vazio, mesmo depois de chamar logaUsuario() com um senha e login corretos. Parece que o método logaUsuario() não cria a variável $_SESSION['usuario_logado']

Segue o código:

<?php

session_start();

function usuarioEstaLogado(){
    $resultado = isset($_SESSION['usuario_logado']);
    echo "usuario logado: {$_SESSION['usuario_logado']}";
    return $resultado;
}

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

function usuarioLogado(){
    return $_SESSION['usuario_logado'];
}

function logaUsuario($email){
    $_SESSION['usuario_logado']=$email;
}

function logout(){
    session_destroy();
}

?>
<?php include("conecta.php");
include("banco-usuario.php");

$usuario = buscaUsuario($conexao, $_POST["email"], $_POST["senha"]);


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

?>
1 resposta

Acho que o problema é a função header estar sendo chamada antes da logaUsuario nessa parte de código abaixo

header("Location: index.php?login=1");
logaUsuario($usuario['email']);

A função header deve estar fazendo o redirecionamento antes mesmo da função logaUsuario ser executada.

Tente inverter a ordem, conforme abaixo, e veja se o comportamento muda.

logaUsuario($usuario['email']);
header("Location: index.php?login=1");

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