Ir para conteúdo

POWERED BY:

Arquivado

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

Drake

Problemas WTF com Sessions

Recommended Posts

E aí galere,de boa?

 

Seguinte,estou com um problema bizarro em uma aplicação que desenvolvo

Minhas sessions nao startam nem a pau,e nao sei pq

Ja coloquei o session_start() no começo da pagina,antes de tudo,mas mesmo assim elas nao iniciame nao salvam valores

Se eu setar o session auto_start pra 1,no php.ini,elas funcionam normal,mas nao posso deixar assim porque entra em conflito com outros sistemas que nos temos no servidor

O engraçado é que,por exemplo,se eu fizer login na aplicação uma vez as sessões nao funcionam

Mas se eu fizer o logoff(session_destroy) e depois me logar denovo,elas começam a funcionar normalmente

Será que pode ser algo de errado no meu codigo?Ou algum problema de cache?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Habilite todas as mensagens de erro, e veja se aparece algo para ti.

 

ini_set('display_errors',1);
error_reporting(E_ALL ^ E_NOTICE);

 

verifique se aparece algo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Hahaha,obrigado por responder e desculpe minha demora

Fiz isso,e da uma mensagem dizendo que a sessão ja foi iniciada,por isso o session start que coloquei na página nao esta sendo considerado

Estranho que,mesmo assim,as sessoes nao funcionam

So se voce logar no sistema e der logout

Na segunda vez que se logar elas funcionam normal

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fiz isso,e da uma mensagem dizendo que a sessão ja foi iniciada

?? como é exatamente essa mensagem ?

Compartilhar este post


Link para o post
Compartilhar em outros sites
Se eu setar o session auto_start pra 1,no php.ini,elas funcionam normal,mas nao posso deixar assim porque entra em conflito com outros sistemas que nos temos no servidor

 

se tiver pressa em resolver ou quiser deixar algo apenas temporário até corrigir o problema, você pode usar o session_auto_start

 

para evitar que conflite com outros sistemas, pode usar em tempo de execução no htaccess ou no próprio php caso esteja usando um bootstrap.

 

exemplo com htaccess

php_flag session.auto_start 1

 

veja também:

http://forum.imasters.com.br/topic/342563-dicas-para-uso-de-variaveis-de-sessao/

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado pelas respostas caras : )

Session auto start resolve o problema,mas causa conflitos com outros sistemas que existem no servidor

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se os eu erro aponta que a sessão já foi iniciada, verifique a inclusão de páginas com session_start()... o erro não apontaria se não tivesse com alguma outra já iniciada, é questão de atenção.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mostre o erro exatamente como ele aparece. você pode ter interpretado errado.

 

Cole aqui exatamente como ele é mostrado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

#8.. acho que não entendeu..

é possivel aplicar o session_auto_start somente num sistema específico, sem afetar outros que estejam no mesmo servidor.

 

mas independente disso, procure corrigir o problema real.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vou postar o erro assim que possivel,as coisas estao bem corridas aqui ultimamente x)

Me parece que ,baseado nos artigos incriveis do Hnerique Barcelos que eu li, isso acontece devido a um bug com o php,que nao grava as sessoes antes de dar o redirecionamento de pagina

Meu login funciona assim, as sessoes sao criadas,e depois tem um redirecionamento para a página da index

Quanto ao session start,olhei em todas as páginas que eu fiz,e nao achei nenhum session start

Quase certo que isso acontece devido ao bug

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nunca ouvi falar desse "bug", ne verdade... creio que você está enganado, e esse bug não existe.

 

Eu também faço login dessa forma, e funciona perfeitamente.

Compartilhar este post


Link para o post
Compartilhar em outros sites

a má configuração do ambiente, principalmente em relação o charset encode, pode causar esses "bugs misteriosos do session_start"..

Compartilhar este post


Link para o post
Compartilhar em outros sites

esta em utf-8 sem bom

vou tentar rever o codigo todo,e quanto ao bug descobri da existencia dele lendo os artigos passados aqui

ta com cara de ser msm,visto que a sessao passa a funcionar normalmente se você logar,deslogar e logar novamente

tentei usar essa função para redirecionamento

function redirect($page){
       if(isset($_SESSION)){
       session_commit();
       }
       header('Location: '.$page);
	exit;
	}

Mas da erro de headers already sent

Tá tenso :(

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mas da erro de headers already sent

você não pode enviar header e nem um session_start depois de já ter cuspido html na tela, por exemplo.

 

Mostre o teu código, completo. A mensagem de erro completa e o código onde ela ocorre.

Compartilhar este post


Link para o post
Compartilhar em outros sites

vou ver se consigo tirar uma parte do codigo e postar aqui,ja que so estou com liberação para ver uma página

vou ver tambem se faço uma pesquisa sobre headers aqui no forum,sempre apanho pra isso

falta de experiencia é um problema serio ;s

Compartilhar este post


Link para o post
Compartilhar em outros sites
Nunca ouvi falar desse "bug", ne verdade... creio que você está enganado, e esse bug não existe.

 

Eu também faço login dessa forma, e funciona perfeitamente.

 

Ele não acontece sempre, mas já aconteceu comigo e com outras pessoas. Depende da configuração do servidor, mas nunca consegui descobrir a causa.

 

O indicado é usar session_write_close (ou session_commit, é a mesma coisa) antes de qualquer redirecionamento para garantir.

Compartilhar este post


Link para o post
Compartilhar em outros sites

entao,fiz isso mas o problema continuou

vou ver agora se pode ser algo no servidor,ja que o codigo parece estar correto

vou checar se é algo relacionado ao cache

mais uma vez,muito obrigado pelas respostas :)

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.