作为不活动注销php

时间:2016-01-31 23:19:57

标签: php session time user-inactivity

我在php中的会话有问题,因为我为结束会话分配了一个变量不活动条件?

我有这段代码:

$fechaGuardada = $_SESSION["ultimoacceso"]; 
    $ahora = date("Y-n-j H:i:s"); 
    $tiempo_transcurrido = (strtotime($ahora)-strtotime($fechaGuardada)); 

    //comparamos el tiempo transcurrido 
     if($tiempo_transcurrido >= 10) { 
       //si pasaron 10 segundos o más 
        session_destroy(); // destruyo la sesión 
        header("Location: index.php"); //envío al usuario a la pag. de autenticación 
        //sino, actualizo la fecha de la sesión 
      }

这里的问题是你在给定的时间登录,在这种情况下它是10秒。

如何在不活动10秒后让条件运行?

1 个答案:

答案 0 :(得分:0)

您可以添加上一个活动会话时间戳,并将其与现在的时间进行比较。您只需要在有效的会话检查上更新时间戳,这也需要在登录时添加。

$fechaGuardada = strtotime($_SESSION["ultimoacceso"]); 
$now = time();

if(($now - $fechaGuardada) >= 10) {
    // Loggout
}
else {
    // Logged in
    $_SESSION['ultimoacceso'] = $now;
}