0

作为对此的新手,如果用户没有点击“任何其他链接”,即在没有任何活动的情况下停留在该页面上,我试图在 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']变量已在脚本开始时设置...

4

2 回答 2

2

您问...

.so 有没有办法(只使用 php 脚本)让这个时间检查在页面上重复发生?

(强调我的)。

不,PHP 每次请求都会在服务器上运行一次以呈现动态 HTML。它不能只是闲置并以某种方式告诉浏览器,“嘿,你快要超时了!”

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

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

于 2012-12-01T05:49:01.713 回答
0

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

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

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

于 2012-12-01T05:49:42.457 回答