Ir para conteúdo

POWERED BY:

Arquivado

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

Hugo Borges_120734

determinar tempo de expiração para session

Recommended Posts

Bom galera tenho a seguinte dúvida.

 

Tenho um sistema de login com varias páginas, sendo que em todas eu chamo a session_start(); para ler dados da session de login.

 

Queria saber como posso fazer para ele expirar em 1 hora.

 

Porque? simples, se o usuário entrar no sistema e sair da frente do pc, e deixar o sistema aberto, em 1 hora a session expirar.

Assim se outro usuário ver o sistema aberto e clicar em algo ele ira avisar que a session fechou.

 

 

Minha dúvida e como programar ele para expirar se o usuário não usar ela em 1 hora.

Compartilhar este post


Link para o post
Compartilhar em outros sites

tente adicionar uma coluna na tabela do tipo time, ou datetime, depois disso, em cada página, adicione algo como:

UPDATE usuarios SET active_time = NOW() WHERE id = $user_id

(supondo que o campo active_time seja do tipo datetime).

 

agora, ao topo de cada página novamente, você checa se o tempo é maior que uma hora, exemplo:

// data atual
$agora = new DateTime();
// adiciona +1 hora ao campo active_time
$plus_one_hour = date($usuario['active_time'], strtotime("+1 hour"));
// cria o detetime com o horário da ultima interação + 1 hora
$last_seen = new DateTime($plus_one_hour);
// se AGORA for maior que a (ultima interação +1 hora), significa que ele já está a 1 hora sem iterar com o site
if($agora > $last_seen)
   unset($_SESSION['login']); // destroi a session 'login'
else
   return false;

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.