Ir para conteúdo

POWERED BY:

Arquivado

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

Raniel

Fechar session com tempo de inatividade

Recommended Posts

Olá pessoal, estou fazendo um sistema de cadastro com authenticação de administradores e gostaria de implementar a função de timeout caso o admin fique um período inativo.

Agradeço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Podes fazer assim:

 

<?php
//Não nos esquecendo de colocar sempre o session start no início do documento, iniciamos o session.
session_start();

//Gravamos o tempo atual em uma sessão, para compararmos depois.
$_SESSION['tempo_permitido'] = mktime(date('H:i:s'));

//suponhamos que nós recebemos o nome do usuário, e gravamos em uma sessão:
$_SESSION['nome_usuario'] = 'iMasters - PHP';

//Se as sessions forem gravadas corretamente, exibimos o nome.
if(isset($_SESSION['nome_usuario']) and isset($_SESSION['tempo_permitido'])){
   print 'Olá <b>'.$_SESSION['nome_usuario'].'</b> Seja bem vindo !';
}
?>

Página que verifica o tempo:

 

<?php
// iniciamos a sessão novamente
session_start();

// pegamos o tempo atual em que estamos:
$agora= mktime(date('H:i:s'));

// subtraimos o tempo em que o usuário entrou, do tempo atual "a diferença é em segundos"
$segundos=(is_numeric($_SESSION['tempo_permitido']) and is_numeric($agora)) ? ($agora-$_SESSION['tempo_permitido']):false;

//definimos os segundos que o usuário deverá ficar logado
define('TEMPO_LOGADO',20);

if($segundos > TEMPO_LOGADO) {
$_SESSION['nome_usuario']='';

print 'Tempo esgotado, efetue login novamente.';

} else {
//Se as sessions ainda existirem, exibimos o nome.
   print 'Olá <b>'.$_SESSION['nome_usuario'].'</b> Seja bem vindo !';
}
?>

Abraços.

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.