Rafael Laurindo Postado Fevereiro 2, 2010 Denunciar Share Postado Fevereiro 2, 2010 (editado) Galera, é o seguinte, estou com problemas em verificar se uma sessão está ativa. Veja este código de exemplo.<?php require_once 'Main.php'; class sample_Login { private $login, $senha; protected $_db; public fu Editado Fevereiro 2, 2010 por Rafael Laurindo Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Rafael Laurindo Postado Fevereiro 2, 2010 Autor Denunciar Share Postado Fevereiro 2, 2010 (editado) Bom galera, eu mesmo descobri o erro. É o seguinte, antes de acessar a superglobal $_SESSION, ou ainda de destruir uma sessão, o comando session_start() deve ser dado. O novo código ficou assim:<?php require_once 'Main.php'; class sample_Login { private $usuario, $senha; protected $_db; public function __construct() { $main = new sample_Main(); $this->_db = $main->get_conn(); if (!empty($_POST['submit'])) $this->login(); else {//Veio de um link session_start(); session_destroy(); } } private function login_exists($login) { $id = " select id from pessoa where email = '$login' "; $id = $this->_db->query($id)->fetchColumn(); if(empty($id)) return false; else return $id; } private function obterLogin() { $this->usuario = $_POST['txtEmail']; //a função md5 criptografa uma string em 32 bits $this->senha = md5($_POST['txtSenha']); } public function login() { $this->obterLogin(); if (!$this->login_exists($this->usuario)) { echo 'Usuário e/ou senha inválido(s)'; } else { $id = $this->login_exists($this->usuario); $senha = " select senha from login where id_pessoa = '$id' "; //chama a senha do banco, já criptografada $senha = $this->_db->query($senha)->fetchColumn(); //Compara a senha digitada com a senha do banco referente if ($this->senha == $senha) { //inicia uma sessão session_start(); if (!$_SESSION) { $_SESSION['login'] = $this->usuario; echo 'não havia sessão ativa'; } else{ echo 'há sessão ativa'; } } else { echo 'Login inválido!'; } } } } new sample_Login();Pode-se ainda nomear uma sessão usando o comando session_name('nome'); antes do session_start();Abraços galera, façam bom uso. Editado Fevereiro 2, 2010 por Rafael Laurindo Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Rafael Laurindo
Galera, é o seguinte, estou com problemas em verificar se uma sessão está ativa. Veja este código de exemplo.
require_once 'Main.php';
class sample_Login
{
private
$login,
$senha;
protected
$_db;
public fu
Editado por Rafael LaurindoLink para o comentário
Compartilhar em outros sites
1 resposta 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.