php会话超时

时间:2012-12-01 05:39:56

标签: php session timeout

作为新手,我试图在100秒后实现会话超时,如果用户没有点击“任何其他链接”,即停留在该页面上没有任何活动..我使用以下PHP脚本但我猜测每个脚本只执行一次“if”条件检查,因此即使检查在某个时间后被违反也不会发生自动重定向。所以有一种方法(仅使用php脚本)以便重复进行此次检查页面??

if (isset($_SESSION['LAST_ACTIVITY']) and (time() - $_SESSION['LAST_ACTIVITY'] > 100)) 
{
    session_unset();                    
    session_destroy();                          
    header('Location: seesiontimeout.php');
}

$_SESSION['LAST_ACTIVITY']变量已在脚本开始时设置...

2 个答案:

答案 0 :(得分:2)

你问......

  

。所以有一种方式(仅使用php脚本)以便这次检查   在页面上反复出现??

(强调我的)。

没有。 PHP根据请求在服务器上运行一次以呈现动态HTML。它不能只是闲置,并以某种方式告诉浏览器,“嘿,你即将超时!”

您必须设置一个客户端javascript函数,重复询问服务器。

  

我已经超时了吗?不。
  我已经超时了吗?不。
  我已经超时了吗?是的!重定向到超时页面。

答案 1 :(得分:0)

is there a way(using only php script) so that this time check occurs repeatedly on the page

不使用“仅PHP”,但您可以在JavaScript中使用AJAX来继续调用服务器上的PHP。

PHP完全在服务器上运行,客户端的浏览器执行。因此,您必须告诉客户端继续检查服务器以确定这样的事情。