Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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.
Vou ler e fazer uns testes por aqui, valeu pela atenção.
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 !';
}
?><?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 !';
}
?>
Acho que isso resolva
http://br2.php.net/manual/pt_BR/function.s...ache-expire.php
ACHO, pois nunca utilizei esta função, mas parece ser oque você quer :rolleyes: