Ir para conteúdo

POWERED BY:

Arquivado

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

gilsonac

Problema com variáveis de sessão

Recommended Posts

Depois de usar session_register e $_SESSION milhões de vezes, notei que ao iniciar a seção pela segunda vez, outro arquivo de sessão foi gerado na pasta temporaria. Será q é por isso que não consigo recuperar as variáveis da sessão na próxima página? Alguém sabe se existe algum antidoto. o último código testado login.php:<?$conexao=mysql_connect("localhost","root");mysql_select_db("nla",$conexao);$txtquery="select * from user where nome='$user' and senha='$passw';";$sql=mysql_query($txtquery);$rows=mysql_num_rows($sql);if($rows==0){ echo("<script language='javascript'>alert('Usuário ou senha invalido.'); window.location.href=\"login.php\";</script>");}else{ $nome1=mysql_result($sql,0,"nome"); $grupo1=mysql_result($sql,0,"grupo"); session_start(); $_SESSION["nome"]=$nome1; $_SESSION["grupo"]=$grupo1; Header("Location: index.php");}?>e verifica.php:<? session_start();if(!isset($_SESSION["nome"]) and !isset($_SESSION["grupo"])) { Header("Location: login.php"); session_destroy();}?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

já tive problemas assim utilizando a função header.

 

costumo utilizar echo "<script>document.top.location='link.php'</script>";

 

só funciona no IE, tenho a correção para os outros browsers, mas naum lembro de cabeça http://forum.imasters.com.br/public/style_emoticons/default/blush.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

já configurei até outro servidor com o sistema operacional diferente e nada. Alguém pode me ajudar? A sessão não acha as variaveis registradas.!!!!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Em primeiro lugar a session_start() tem que estar na primeira linha do script, em segundo:

 

Para usar o header é necessario adicionar:

 

ob_start(); no inicio da página

ob_end_flush(); no final na página

 

Sintaxe:

header("Location: site.php");

 

 

Ou seja a sua deveria ficar assim:

 

<?

ob_start();

session_start();

$conexao=mysql_connect("localhost","root");

mysql_select_db("nla",$conexao);

$txtquery="select * from user where nome='$user' and senha='$passw';";

$sql=mysql_query($txtquery);

$rows=mysql_num_rows($sql);

if($rows==0){

echo("<script language='javascript'>alert('Usuário ou senha invalido.');

window.location.href=\"login.php\";</script>");

}

else{

$nome1=mysql_result($sql,0,"nome");

$grupo1=mysql_result($sql,0,"grupo");

$_SESSION["nome"]=$nome1;

$_SESSION["grupo"]=$grupo1;

Header("Location: index.php");

}

ob_end_flush();

?>

 

 

Espero ter contribuido!

 

Abraços,

 

Júnior

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu acho q eu não me expliquei direito. Vamos lá: o header tá funcionando, porém o verifica.php não reconhece as variaveis da sessão e retorna para a pagina do login. ou seja no verifica.php está, no meu ver abrindo uma nova sessão e não reconhece a primeira aberta pelo validausuario.php. Desde já agradeço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara tente utilizar no lugar de $user e $passw, $_POST[user] e $_POST[passw], além de serem mais seguros, não dão problema de compatibilidade.Tenho quase certeza que o seu servidor não está com o register_globals ligado, por isso dá ese erro...flws...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Já não sei mais o q fazer, obrigado pela dica do $_POST, mas apesar de ficar entusiasmado qnd li o post ao usá-lo tb ocorreu o mesmo erro, ou seja as variaveis da session não estão sendo armazenadas, e eu conferi com o phpinfo() e minha register_globals está On. Mesmo assim obrigado! Sugestões serão bem vindas....

Compartilhar este post


Link para o post
Compartilhar em outros sites

Notei uma coisa hoje, toda vez q eu dou um session_start() uma nova ID é gerada e outro arquivo sess_................ tmb no diretorio temporario. Isso ta certo? pois notei tambem que uns tem um tamanho e outros tem outro, ou seja, acredito que as variaveis estão nesses arquivos maiores. Como faço p recuperar esses arquivos quando vou iniciar outra sessão. Será q eu achei o problema? Me ajudem ai vai.

Compartilhar este post


Link para o post
Compartilhar em outros sites

EUREKA!!!!! Eu tava certo. Verifiquei os arquivos q estavão sendo gerados e cheguei a seguinte conclusão: quando inicio a sessão e armazeno os dados, tudo é feito normalmente, o arquivo no diretorio tmp é gerado com as variaveis contidas nele, no entanto na pagina de verificação ao dar o comando session_start() novamente ele gera outro arquivo no diretorio tmp vazio, ou seja, as variaveis não serão vistas!!!!! Agora me surge outro problema, será q isso é alguma configuração do servidor? Devo abrir outro tópico, já q acredito q o problema não está nas variáveis.... Desde já agradeço a todos q de alguma forma tentaram me ajudar..

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.