2013-07-08 56 views
-3

如何在特定时间后暂停会话(例如用户闲置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{ 
+3

*他不能注销*为什么折磨你的用户? –

+0

更好地在数据库中使用cookie或存储会话ID。 – hjpotter92

+0

如果会话暂停,用户如何取消暂停它?如果解除暂停是自动的,那么首先暂停的地方是什么? ** EVERY **会话按照定义在服务器点击之间“暂停”。 –

回答

0

数据库保存会话:

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

你可以重新加载:

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

注:这是一个teoric例子。尝试自己

相关问题