Ir para conteúdo

POWERED BY:

Arquivado

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

Jack.Psycho

Não consigo expirar uma sessão por tempo

Recommended Posts

Estou tentando expirar uma sessão após um determinado período de tempo para evitar que ela fique aberta após o usuário fechar o navegador sem clicar em desconectar mas não consigo, já procurei diversos tópicos na internet e fiz várias tentativas mas não funciona, não sei o que estou fazendo de errado.

 

Utilizo duas páginas, a primeira página é um formulario de login e senha que também cria a sessão que será obtida na segunda página. A Segunda página recupera e finaliza a sessão aberta.

 

Primeira Página.::

 


<?php

session_cache_limiter('private');
$cache_limiter = session_cache_limiter();
session_cache_expire(1);
$cache_expire = session_cache_expire();

session_start('teste');
$_SESSION['resultado'] = aberto;

?>

Segunda Página.::

 


<?php

session_start('teste');
$resultado = $_SESSION['resultado'];
session_unset(); 
session_destroy();

echo "Resultado: " .$resultado. "<br>";

?>

Teoricamente é para a Sessão Expirar após 1 minuto e para a variável $resultado não mostrar nada na segunda página, mas não funciona, a variável mostra o resultado setado na primeira página, o que estou fazendo de errado ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Penso que a seguinte discussão pode te ajudar: http://www.daniweb.com/forums/thread124500.html

 

O conceito é utilizar um tempo de inatividade e, se o tempo da sessão for maior que o mesmo, redirecionar para a página de logout (ou destruir a sessão).

Compartilhar este post


Link para o post
Compartilhar em outros sites

é mais seguro salvar o timestamp no momento que é gerada a sessão

 

toda vez que checar a sessão, verifique se o timestamp é maior que o tempo que deseja limitar.

 

veja o exemplo do linkl que o Eliseu postou

Compartilhar este post


Link para o post
Compartilhar em outros sites

Agradeço a ajuda, dei uma olhada no post e fiz alguns testes mas o resultado é parecido com o que eu já havia conseguido anteriormente.

 

Funciona, porém a sessão só é destruída após a página que roda o script se atualizar, vi o conselho de um usuário para utilizar códigos de refresh no html mas me soa um pouco como gambiarra.

 

Não sei se entendi muito bem como funciona a função Session Expire ou se estou implementando incorretamente mas eu pensei o seguinte.::

 

1) A página inicia uma sessão com determinado valor. Ex: $_SESSION['resultado'] = aberto;

 

2) Se a sessão "expirar" ela automaticamente se destrói, zerando o valor previamente setado.

 

3) Se o usuário clicar em logar, após o prazo estabelecido para expirar, o resultado obtido será nulo (Já que ao expirar a sessão foi destruída).

 

Isto é possível ? Ou a função exige que haja uma atualização ?

 

Digo isso pois caso seja necessário atualizar acredito que seja mais prático utilizar a função sleep(); para destruir a sessão.

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.