Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Jow Xavier

[Resolvido] Session perdendo valor

Recommended Posts

Boa noite, estou com o seguinte problema para o usuário entrar no sistema o login tem que ser feito duas vezes, onde o correto seria fazer apenas uma vez, tenho uma classe php e nela uma função de login, conforme abaixo:

 

    function login($where){
       $resultado = $this->listar($where);
       foreach($resultado as $valor){
           //recupero o array inteiro da linha 0 e o insiro para dentro da sessao USER, assim, se o array tiver a posicao nome, logo minha sessao tera a posicao nome tambem
           $_SESSION['user'] = $valor;
       }		
       if(!$valor):
           echo '<script>alert("Login / Senha incorretos");window.location="../../erro.php";</script>';
       else:
           if($_SESSION['user']['perfil'] == 1):
               echo '<script>window.location="pagina1.php";</script>';
           else:
               echo '<script>window.location="pagina.php";</script>';
           endif;
       endif;
   }

 

Nesta função o valor da session está OK.

 

aki eu verifico se a session existe ... está caindo "Session inexistente"

session_start();
if (!$_SESSION['user']):
  echo "Session inexistente";
else:
  echo "Login realizado com sucesso";
endif;

 

Na pagina seguinte a session não existe, alguém pode me ajudar ...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia, a sessão está sendo criada, ela mostra o valor dentro da função mas perde este mesmo valor na outra pagina, isso sempre ocorre na primeira vez que eu tento me logar no sistema, na segunda vez que tento me logar consigo sem problemas, quando não consigo me logar mostra erro abaixo.

 

Notice: Undefined index: user in /home/httpd/vhosts/basicoarquitetura.com.br/httpdocs/admin/menu/index.php on line 6

 

error_reporting( E_ALL ); 
ini_set( 'display_errors', 1);
//date_default_timezone_set('America/Sao_Paulo');
@session_start();
echo "ID EMPRESA -> ".$_SESSION['user']['id_empresa'];exit(); [b]--- linha 6[/b]

Compartilhar este post


Link para o post
Compartilhar em outros sites

algum motivo específico para estar usando o supressor de erros?

 

@session_start();

o sinal @ é um supressor de erro nesse caso.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nenhum motivo especifico, mesmo usando sem ele continua mesma coisa.

 

Consegui resolver, tinha um espaço no rodapé em um arquivo que estou dando include ... valeu

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu tive o mesmo problema um dia desses, mas o que acontecia, era que ao entrar na página, todos os dados da session, eram perdidos, foi aí que o Willam Bruno, quando perguntei pra ele, falou sobre a register_globals, então resolvi meu problema assim.

function unregister_globals() {
   if ( ini_get( 'register_globals' ) == true ) {
       $Array = Array( '_REQUEST' , '_SESSION' , '_SERVER' , '_ENV' , '_FILES');
       foreach( $Array as $Value) {
           foreach( $GLOBALS[ $Value ] as $Index => $Data ) {
               if ( $Data === $GLOBALS[ $Index ]) {
                   unset( $GLOBALS[ $Index ] );
               }
           }
       }
   }
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu tive esse problema também. Mas descobri que era algum erro na configuração do site. Estava hospedando na LocaWEB e parece que a configuração de pastas não foi realizada corretamente na criação do site. Então ele não conseguia acessar o arquivo da SESSION

 

Precisei alterar a configuração session.save_path do arquivo php.ini

localização do arquivo PHP.ini .png

configuração session.save_path do arquivo php,ini ,png.PNG

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.