Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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 ...
você precisa colocar session_start(); no começo sempre q for usar o $_SESSION
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]algum motivo específico para estar usando o supressor de erros?
@session_start();
o sinal @ é um supressor de erro nesse caso.
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
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 ] );
}
}
}
}
}Desculpe, não entendi.
Quando que eu chamo esta função criada?
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
faça esse teste:
http://www.php.net/manual/en/ref.session.php#99664
veja também:
http://forum.imasters.com.br/topic/342563-dicas-para-uso-de-variaveis-de-sessao/