2012-12-01 192 views
0

由于这是新的,我试图实现100秒后会话超时,如果用户不点击“任何其他链接”,即停留在该页面上没有任何活动..我使用以下的PHP脚本,但我想“如果”条件检查每个脚本只完成一次,所以即使检查违反了某些时候,也不会发生自动重定向..所以有一种方法(只使用PHP脚本),以便这次检查在页面上重复出现?php会话超时

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

$_SESSION['LAST_ACTIVITY']变量已经被设置为脚本的起点......

+0

你在''__SESSION ['LAST_ACTIVITY']中有什么' –

+0

你可以在页面本身使用setTimeout()并在任何活动时重置它。一旦启动,您可以执行重定向。一旦提交任何内容,您仍应该检查PHP。 –

回答

2

你问...

。所以有(只使用PHP脚本)的方式使那这次检查 在页面上反复出现?

(强调我的)。

编号PHP在服务器上为每个呈现动态HTML的请求运行一次。它不能只是空闲,以某种方式告诉浏览器,“嘿,你即将超时!”

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

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

0

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

不使用 “唯一的PHP”,但您可以使用AJAX在JavaScript中不断在服务器上的PHP调用。

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