Sessão deixaram de funcionar.
Bom dia senhores.
Meu site tem um sistema de login que utiliza variáveis $_SESSION conforme descrito nos trechos abaixo. O grande problema é que este sistema de login estava funcionando há quase um ano e ontem do nada, parou de funcionar. Fiz verificações e concluí que a sessão é criada apenas na página onde os dados são criados, mas não é propagada nas outras páginas, é como se ela deixasse de existir. Ou seja, ao tentar fazer o login, o usuário é redirecionado de volta para a página de login. O provedor informou que não houve mudanças nos diretórios. Então a grande pergunta é: o que pode estar causando este problema nas SEESSIONS se não houveram alterações nem no código-fonte e nem no diretório de hospedagem? Substituir variáveis de sessions por variáveis vindas de um banco de dados é algo válido e seguro?
PÁGINA QUE RECEBE E ANALISA OS DADOS INSERIDOS NO FORM DO LOGIN:
>
Citar
$user = $_POST['user'];
$pass = $_POST['pass'];
$symbol = '$$btx#@ssk';
$senha_final = md5($pass.$user.$symbol);
$verifica = mysql_query ("SELECT * FROM USUARIOS WHERE EMAIL = '$user' AND SENHA = '$senha_final' ");
$dado = mysql_fetch_object($verifica);
if ($dado->FUNC == AsOp)
{$nivel = 3; }
elseif ($dado->FUNC == OpEs)
{$nivel = 2; }
elseif ($dado->FUNC == CoOp)
{$nivel = 4; }
elseif ($dado->FUNC == GeOp)
{$nivel = 4; }
if ($dado->FUNC == DiEx)
{$nivel = 4; }
if ($dado->FUNC == TeCa)
{$nivel = 0; }
$linhas = mysql_num_rows ($verifica);
if ($dado->STATUS == 'Ativo')
{
if ($linhas > 0)
{session_start();
ob_start();
$_SESSION['user'] = $user;
$_SESSION['pass'] = $pass;
$_SESSION['nivel'] = $nivel;
$_SESSION['filial'] = $dado->BASE;
$_SESSION['who'] = $dado->NOME;
$logado = $_SESSION['user'];
$action_query = mysql_query("UPDATE USUARIOS SET ONOFF ='Online' WHERE EMAIL='$logado'");
header('location:index.php');
}
}
elseif ($dado->STATUS == 'Bloqueado')
{
unset ($_SESSION['user']);
unset ($_SESSION['pass']);
unset ($_SESSION['nivel']);
unset ($_SESSION['filial']);
unset ($_SESSION['who']);
header('location:login1.php?warning=LoginLock');
}
else
{
unset ($_SESSION['user']);
unset ($_SESSION['pass']);
unset ($_SESSION['nivel']);
unset ($_SESSION['filial']);
unset ($_SESSION['who']);
header('location:login1.php?warning=LoginFail');
}
TRECHO DO COLOCADO NAS PÁGINAS PROTEGIDAS
>
Citar
session_start();
if((!isset ($_SESSION['user']) == true) and (!isset ($_SESSION['pass']) == true))
{session_destroy();
unset($_SESSION['user']);
unset($_SESSION['pass']);
header('location:login1.php?warning=SessionFail'); }Discussão (3)
Carregando comentários...