Php 暂停和重新启动会话

Php 暂停和重新启动会话,php,mysql,session-timeout,Php,Mysql,Session Timeout,如何在特定时间(例如,当用户处于非活动状态30分钟)后暂停会话而不注销用户 更具体地说,我想知道用户何时登录、会话何时启动以及会话的持续时间。如果用户处于非活动状态达30分钟,则应暂停会话(但不注销),并记录“中断时间”。如果用户仍处于非活动状态达一小时,则会话将终止并注销 注意:如果用户在30分钟后处于活动状态,则会话应重新启动 我的代码如下。你能为我推荐一个更好的来源吗 include('../config/connect.php'); session_cache_expire( 20 );

如何在特定时间(例如,当用户处于非活动状态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{

将会话保存到数据库:

$session->update('session',serialize($_SESSION),'userid = '.$userid);
您可以重新加载:

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

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

他无法注销为什么折磨你的用户?最好使用cookies或在数据库中存储会话ID。如果会话暂停,用户如何取消暂停?如果取消暂停是自动的,那么首先暂停有什么意义?根据定义,每个会话在服务器点击之间都是“暂停”的。