Verificar se usuário está logado não confere.
21/07/2014
0
Estou com um problema de reconhecer se o usuário está logado, quando mudo de página verifico se o usuário está logado.
Uso um método para criar uma sessão e um cookie para melhor segurança. Logo tranquilamente, porém quando mudo para outra página verifico se o usuario está logado, só que está dando como false, usuário não logado. verifiquei se o valor do cookie se confere com o cookie criado, estão diferente e não tenho idéia o porque.
Uso um método para criar uma sessão e um cookie para melhor segurança. Logo tranquilamente, porém quando mudo para outra página verifico se o usuario está logado, só que está dando como false, usuário não logado. verifiquei se o valor do cookie se confere com o cookie criado, estão diferente e não tenho idéia o porque.
//método loga usuario function logaUsuario($usuario, $senha, $lembrar = false){ . . . // Usuário logado com sucesso $_SESSION[$this->prefixoChaves . 'logado'] = true; // Define um cookie para maior segurança? if ($this->cookie) { // Monta uma cookie com informações gerais sobre o usuário: usuario, ip e navegador $valor = join('#', array($usuario, $_SERVER['REMOTE_ADDR'], $_SERVER['HTTP_USER_AGENT'])); // Encripta o valor do cookie $valor = sha1($valor); // Cria o cookie setcookie($this->prefixoChaves . 'token', $valor, 0, $this->cookiePath); } } //método que verifica se o usuario está logado ( onde não estou conseguindo ) function usuarioLogado($cookies = true) { // Inicia a sessão if ($this->iniciaSessao AND !isset($_SESSION)) { session_start(); } // Verifica se não existe o valor na sessão if (!isset($_SESSION[$this->prefixoChaves . 'logado']) OR !$_SESSION[$this->prefixoChaves . 'logado']) { // Verifica os dados salvos nos cookies if ($cookies) { // Se os dados forem válidos o usuário é logado automaticamente return $this->verificaDadosLembrados(); } else { // Não há usuário logado $this->erro = 'Não há usuário logado'; return false; } } // Faz a verificação do cookie if ($this->cookie) { // Verifica se o cookie não existe if (!isset($_COOKIE[$this->prefixoChaves . 'token'])) { $this->erro = 'Não há usuário logado'; return false; } else { // o problema está aqui // Monta o valor do cookie $valor = join('#', array($_SESSION[$this->prefixoChaves . 'logado'], $_SERVER['REMOTE_ADDR'], $_SERVER['HTTP_USER_AGENT'])); // Encripta o valor do cookie $valor = sha1($valor); // Verifica o valor do cookie if ($_COOKIE[$this->prefixoChaves . 'token'] !== $valor) { $this->erro = 'Não há usuário logado'; return false; } } } // A sessão e o cookie foram verificados, há um usuário logado return true; }
Adenes Junior
Curtir tópico
+ 0
Responder
Clique aqui para fazer login e interagir na Comunidade :)