暂停和重新启动会话

时间:2013-07-08 19:10:04

标签: php mysql session-timeout

如何在特定时间(例如用户处于非活动状态30分钟)之后暂停会话而不将用户注销?

更具体地说,我想知道用户何时登录,会话何时开始以及会话的持续时间。如果用户处于非活动状态30分钟,则应暂停会话 - 但不会注销 - 并记录“休息时间”的数量。如果用户仍处于非活动状态一小时,则会话将终止并注销。

注意:如果用户在30分钟后处于活动状态,则会话应重新启动。

我的代码如下。你能为我建议一个更好的消息来源吗?

include('../config/connect.php');
session_cache_expire( 20 );
session_start(); // NEVER FORGET TO START THE SESSION!!!
$inactive = 3600;
if(isset($_SESSION['start']) ) {
$session_life = time() - $_SESSION['start'];
if($session_life > $inactive){
header("Location:mylogout.php");
}
}
$_SESSION['start'] = time();

if($_SESSION['LOGIN_STATUS'] != true){
header('Location:mylogin.php');
}else{

1 个答案:

答案 0 :(得分:0)

将会话保存在数据库中:

$session->update('session',serialize($_SESSION),'userid = '.$userid);

你可以重新加载:

$_SESSION = unserialize($session->select('userid = '.$userid));

注意:这是一个teoric示例。试试自己

相关问题