Jump to content
fael97

SESSÃO PHP SOME AO RELOGAR PÁGINA NA HOSPEDAGEM

Recommended Posts

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 é.

Share this post


Link to post
Share on other sites
Em 10/01/2019 at 12:43, fael97 disse:

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 é.

 

Cara, coloca o valor da sessão familiar fixo, e faz um teste, tipo assim:

//ao invés disso $_SESSION['familia'] = $registro[0]['familia'];
$_SESSION['familia'] = 1; // coloca isso.

vê ela ainda some.

 

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By _FelipeOlvr
      Talvez seja simples, ou não. Não sei.
      Mas gostaria de um esclarecimento/luz de gente que já tem bagagem na área. Ficarei muito agradecido pela informação.
       
      Dei umas pesquisadas por ai, e fiz testes com as duas maneiras que achei ( até agora ):
       
      file_get_contents ( 'http://......' ) ;
      curl () ;
       
      Pergunta: 
       
      Existem outras maneiras de consumir API via PHP ? Quais ?
      Essas duas aí estão corretas?
    • By santans
      <?php if(isset($_post['name']) && !empty($_post['name'])){ $nome = addslashes($_post['name']); $email = addslashes($_post['email']); $mensagem = addslashes($_post['mesage']); $to = "gabriel@symmetrycorp.com.br"; $subjet = "Formulario - Contato SITE"; $body = "Nome: ".$nome. "\r\n". "E-mail: ".$email. "\r\n". "Mensagem: ".$mesage. "\n"; $header = "From: gabriel@symmetrycorp.com.br "."\r\n"."Replay-to:".$email."\r\n"."X=Mailer:php/".phpversion(); if(mail($to, $subject, $body, $header)){ echo("E-mail enviado com sucesso"); }else{ echo("O e-mail não pode ser enviado"); } } ?> Gostaria de ajudar para conferir esse código para envio de email, quero ter certeza que não há nenhum erro de escrita do código...
    • By Masant12
      Por favor, estou tendo dificuldades, alguém poderia me ajudar, gostaria de saber como posso fazer um sistema de reserva e se isso é possível, pois não encontrei nem um material sobre isso na internet.
    • By michael450
      Senhores, boa tarde.
       
      Estou com um probleminha... rss', preciso fazer a listagem de uma função da biblioteca "SPED-NFe"   na qual consulto quais as NFe que emitiram contra meu CNPJ, porém o ele executa toda a função e depois me trás o resultado, eu gostaria de trazer o resultado instantaneamente, como se fosse uma atualização segundo a segundo.
       
       
      Essas informações não são salvas em DB, é apenas para consulta.
      Se alguém puder ajudar serei muito grato,
       
      Abraço.
       
      Michael Douglas
    • By D2th3
      Pessoal,

      Sou intermediário em PHP e estou estudando OO. Vi exemplos de do MVC Pattern usando template view contudo de simples substituição do marcador pelos dados. Eu gostaria que você me pudessem indicar um material de estudo, exemplos de código de um Model, Controller e View que carregasse a template e exibisse, contudo dentro dessa template existisse condicionais e loops como marcadores a serem processados pelo PHP.
       
      Agradeço a ajuda aos meus estudos.
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.