problema com o session_cache_expire

470 views
Skip to first unread message

Marcelo Filho

unread,
Mar 12, 2013, 3:07:01 PM3/12/13
to php-b...@googlegroups.com
Fala pessoal,

seguinte, preciso fazer com que o cache da SESSION não expire então pus isso no inicio da minha index:

session_cache_expire(180000);
session_start();

entrei no sistema ás 14:51 e depois saí para almoçar e jogar um pouquinho (ninguém é de ferro né...) voltei ás 16:00 quando eu cliquei num link ele me redirecionou para o login logo, o sistema expirou... alguém sabe se tem mais alguma coisa que possa estar impossibilitando de manter o sistema logado por mais tempo?

P.S = ainda tenho o seguinte no header:

header("Cache-Control: no-cache, must-revalidate");
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT");

mas duvido que isso esteja impossibilitando a permanência do sistema online.

--
Não tenho vergonha de mudar de idéia, porque não tenho vergonha de pensar.

Blaise Pascal

Guilherme Medeiros

unread,
Mar 12, 2013, 3:25:45 PM3/12/13
to php-b...@googlegroups.com
fechar o navegador destroi a sessao.
trocar de ip destroi a sessao.


Se tu não fez nenhuma dessas ações, era para estar funcionando.


Atenciosamente,

 

Guilherme Medeiros

Web Developer FTW!!!

www.FReNeTiC.com.br

Socialize: LinkedIn Twitter


--
Você está recebendo esta mensagem porque se inscreveu no grupo "php-brasil" dos Grupos do Google.
Para cancelar a inscrição neste grupo e parar de receber seus e-mails, envie um e-mail para php-brasil+...@googlegroups.com.
Para postar neste grupo, envie um e-mail para php-b...@googlegroups.com.
Visite este grupo em http://groups.google.com/group/php-brasil?hl=pt-BR.
Para obter mais opções, acesse https://groups.google.com/groups/opt_out.
 
 


Marcelo Filho

unread,
Mar 12, 2013, 3:37:34 PM3/12/13
to php-b...@googlegroups.com
pois é, eu sei que deveria... tem alguma configuração no php.ini que bloqueia o uso da função?

Guilherme Medeiros

unread,
Mar 12, 2013, 3:46:12 PM3/12/13
to php-b...@googlegroups.com
Descobri o real erro :P

www.php.net/manual/en/function.session-cache-expire.php

A documentação do cache expire, q vc está usando, não deixa bem claro o seguinte:
http://www.php.net/manual/en/function.session-cache-expire.php#81265

Traduzindo, mais ou menos, o texto:

"(...) o cache_expire não influencia no tempo de vida da sessão, e sim no tempo de cache da pagina no navegador (...)"

Isso significa dizer que, se a session sobreviver mais que X, definido no php.ini, ela estará sujeita a ser recolhida pelo Garbage Collector do PHP, mesmo você empurrando valores altos no session_cache_expire.




Atenciosamente,

 

Guilherme Medeiros

Web Developer FTW!!!

www.FReNeTiC.com.br

Socialize: LinkedIn Twitter


Cassiano Ricardo Mourão

unread,
Mar 12, 2013, 3:51:50 PM3/12/13
to php-b...@googlegroups.com

Cassiano Ricardo Mourão

unread,
Mar 12, 2013, 3:54:58 PM3/12/13
to php-b...@googlegroups.com

Guilherme Medeiros

unread,
Mar 12, 2013, 3:58:02 PM3/12/13
to php-b...@googlegroups.com
O que tu precisa de verdade é utilizar o banco de dados para guardar os valores da sessão e um cookie no navegador do usuário para validar o acesso a esses dados.
É assim que a maioria dos sites funciona.
Geralmente o banco de dados para isso é o Redis, mas dá para implementar com qualquer banco.
Afinal, o que você "aparentemente" está precisando é manter o usuário sempre logado, né isso?

De cabeça não me vem nenhuma lib, mas deve existir uma que facilite/implemente essa tarefa.
Dá uma olhada no google ou aqui - https://packagist.org/search/?q=session





Atenciosamente,

 

Guilherme Medeiros

Web Developer FTW!!!

www.FReNeTiC.com.br

Socialize: LinkedIn Twitter


Cassiano Ricardo Mourão

unread,
Mar 12, 2013, 3:58:47 PM3/12/13
to php-b...@googlegroups.com
Ops de novo... Fui pesquisar rapidamente e o gc_maxlifetime NÃO aumenta o tempo da sessão...
 
 
Agora... porquê mesmo você quer deixar essa sessão "infinita"?

Marcelo Filho

unread,
Mar 12, 2013, 4:14:15 PM3/12/13
to php-b...@googlegroups.com
Eu desenvolvi um software web para o cliente fazer o cadastramento dos produtos, mas acontece que ele as vezes uns 30 minutos sem mexer e o dito tem preguiça de relogar o tempo todo, aí nos testes eu usei um valor grande, não é meu intuito usar um session infinita.

Guilherme Medeiros

unread,
Mar 12, 2013, 4:25:26 PM3/12/13
to php-b...@googlegroups.com
Tu pode tentar aumentar esse valor no php.ini

Se tu não tiver acesso, e não quiser implementar o que eu falei sobre "cookies", tu pode usar a verdade como desculpa.
Basta dizer que:
"apesar de ser funcional, esse funcionamento é uma falha de segurança no projeto. Redigitar a senha e validar o usuário, mesmo que chato, garante a segurança da informação."

Você pode utilizar exemplos de cookie-hijacking e de session-hijacking para validar seu argumento.



Atenciosamente,

 

Guilherme Medeiros

Web Developer FTW!!!

www.FReNeTiC.com.br

Socialize: LinkedIn Twitter


Cassiano Ricardo Mourão

unread,
Mar 12, 2013, 4:32:56 PM3/12/13
to php-b...@googlegroups.com
Na verdade, se não funcionar nada, simplesmente coloca um refresher lá de 5 em 5 minutos.
Tosco, mas funfa like a boss.

Guilherme Medeiros

unread,
Mar 12, 2013, 4:37:30 PM3/12/13
to php-b...@googlegroups.com
gambiarras
gambiarras everywhere



Atenciosamente,

 

Guilherme Medeiros

Web Developer FTW!!!

www.FReNeTiC.com.br

Socialize: LinkedIn Twitter


Reply all
Reply to author
Forward
0 new messages