-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{
4

1 回答 1

0

将会话保存在数据库中:

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

你可以重新加载:

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

注意:这是一个典型的例子。自己试试

于 2013-07-08T19:15:55.287 回答