Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Tenho esse script que deveria finalizar a sessão depois de 15 minutos e direcionar para outra página:
$_SESSION["user_time"];
session_start();
function auto_logout($field){
$t = time();
$t0 = $_SESSION[$field];
$diff = $t - $t0;
if ($diff > 1500 || !isset($t0)){
return true;
}
else{
$_SESSION[$field] = time();
}
}
if(auto_logout("user_time")){
session_unset();
session_destroy();
header("Location: index.php?expired=true");
exit;
}
Mas quando a página é carregada, automaticamente a página do Location é carregada no lugar.
hinom, obrigado. Mas acabei usando outro script:
if (!isset($_SESSION['CREATED'])) {
$_SESSION['CREATED'] = time();
} else if (time() - $_SESSION['CREATED'] > 300) {
// session started more than 30 minutes ago
session_regenerate_id(true); // change session ID for the current session an invalidate old session ID
$_SESSION['CREATED'] = time(); // update creation time
}
if (isset($_SESSION['LAST_ACTIVITY']) && (time() - $_SESSION['LAST_ACTIVITY'] > 300)) {
// last request was more than 30 minutes ago
session_unset(); // unset $_SESSION variable for the run-time
session_destroy(); // destroy session data in storage
}
$_SESSION['LAST_ACTIVITY'] = time(); // update last activity time stampblzinha.
esse que vc postou faz a mesma lógica do que eu postei e adiciona tb o tempo de atividade que está faltando no post #1