Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/267.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过jquery在60秒前为put会话打开更多选项卡时出现php cookies和会话问题过期警报_Php_Session_Cookies - Fatal编程技术网

通过jquery在60秒前为put会话打开更多选项卡时出现php cookies和会话问题过期警报

通过jquery在60秒前为put会话打开更多选项卡时出现php cookies和会话问题过期警报,php,session,cookies,Php,Session,Cookies,我正在配置文件中使用下面的代码 if (isset($_SESSION['LAST_ACTIVITY']) && (time() - $_SESSION['LAST_ACTIVITY'] > 600)) { session_unset(); // unset $_SESSION variable for the run-time session_destroy(); // destroy session data in storage }

我正在配置文件中使用下面的代码

if (isset($_SESSION['LAST_ACTIVITY']) && (time() - $_SESSION['LAST_ACTIVITY'] > 600)) {

    session_unset();     // unset $_SESSION variable for the run-time 
    session_destroy();   // destroy session data in storage
}  

$_SESSION['LAST_ACTIVITY'] = time();
上述代码在停用10分钟后工作,会话将被破坏

当用户登录时,将设置cookie,如

setcookie("loggedin", "true", time()+600);
在jquery中,我设置了会话时间:600秒

set warning alert set using jquery : 60 seconds[60 seconds before expire session show alert 60]
(您的会话将在60秒后过期!可以重新启动会话[页面刷新])

打开一个选项卡就可以了。如果打开第二个选项卡页面刷新会话并重置Cookie,则从600秒开始。但上一个选项卡持续时间低于600秒,警告警报变早。 (Actullay页面刷新仅重置Cookie和会话。但我们无法引用prev选项卡) 如何解决这些问题


请帮忙

在显示警告之前,发出AJAX请求以验证最后一个活动,如果剩余时间超过60秒,则延迟警报

下面是非常基本的示例代码

time_left.php:

session_start();
echo time() - $_SESSION['LAST_ACTIVITY'] - 600;
jQuery:

$.ajax('time_left.php').done(function(t) {
   if (t <= 60) {
      // 60 seconds or less left
   }
   else {
      // more than 60 seconds left, reset timer for (t - 60) seconds
   }
});
$.ajax('time\u left.php').done(函数(t){

如果(t)是有效的。但是可以使用setInterval()函数同时警告会话过期警告所有选项卡。我不理解这个问题,您需要使用setInterval来设置代码在一定时间后运行。