SESSÃO PHP SOME AO RELOGAR PÁGINA NA HOSPEDAGEM
Olá a todos bom dia, tarde ,noite...
bem estou com um problema meio chato, sempre que relogo a página no meu site a sessão que estava salva some.. eu preciso muito dela pois ela quem me mantem logado e navegando pelo site..
a estrutura do meu site é assim. É uma rede social: www.onfamily.com.br.
tenho a pagina de login que me leva para index, paginas de navegação que leva para pagina de cadastro de família caso não houver a sessão família. e caso não houver login nem senha me leva pra pagina de login novamente.
o problema é que quando eu logo, após ir para página de navegação mostra a sessão família la emcima, mas quando eu relogo a página a sessão some, e me leva para página de cadastro de família, sendo que a família ja foi cadastrada e validade na página de login do qual está na sessão. alguem poderia me ajudar com este bug? pra não precisar ficar fazendo várias consultas sempre quando relogo a página?
meu codigo é assim:
Página processa_login:
<?php
if((isset($_POST['email'])) and (isset($_POST['senha']))){
//inclui arquivos de classes
include('classes/classes.inc.php');
//inclui arquivo de funcoes
require_once('funcoes/conexao.func.php');
$conn = Conn();
**if(!isset($_SESSION)) session_start();**
//recupera dados do form
$email = $_POST['email'];
$senha = utf8_encode($_POST['senha']);
//instãncia novo objeto login da classe login
$login = NEW Login("","","");
$retorno_log = $login->autenticaUsuario("$email","$senha");
if($retorno_log == 1){
//atribui os valores a sessão
$_SESSION['email'] = $email;
$_SESSION['senha'] = $senha;
$selecionar = $conn->prepare("
SELECT informacoes_usuario.familia FROM informacoes_usuario
JOIN usuarios ON informacoes_usuario.usuario = usuarios.idusuario
WHERE email = ?
");
$selecionar->execute(array($email));
$registro = $selecionar->fetchAll(PDO::FETCH_ASSOC);
if($registro[0]['familia'] != null){
**$_SESSION['familia'] = $registro[0]['familia'];**
if(isset($_SESSION['url'])){
echo "<script>window.location.assign('$url');</script>";
}else{
echo "<script>window.location.assign('nav/index.php');</script>";
}
}else{
echo "<script>window.location.assign('cadastro/criar_familia.php');</script>";
}
}else{
echo "usuário ou senha incorretos";
}
}else{
echo "Houve um erro interno. <a href=\"javascript:history.back()\">Voltar</a>";
}
?>
**trecho da página index: **
//se não existe sessão, então inicia
if(!isset($_SESSION)) session_start();
//$_SESSION['url'] = $_SERVER['REQUEST_URI'];
//aqui imprime da primeira vez que faço o login, mas quando relogo a página a sessão some!, obs: a sessão email e senha continuam la
echo $_SESSION['familia'];
echo $_SESSION['email'];
echo $_SESSION['senha'];
if((!isset($_SESSION['email'])) and (!isset($_SESSION['senha'])) and (!isset($_SESSION['familia']))){
header('location: ../index.php');
}elseif((isset($_SESSION['email'])) and (isset($_SESSION['senha'])) and (!isset($_SESSION['familia']))){
header('location: ../cadastro/criar_familia.php');
}
alguem da um help por favor, porque a sessão família está aparecendo somente uma vez e sumindo, e a sessão email e senha não está?
obs: no servidor local funciona perfeitamente, e antes estava funcionando normalmente após alterar alguns trechos que nem lembro mais oque é.Discussão (2)
Carregando comentários...