我目前从PHP Web应用程序处理超时这样:显示超时警告中的jQuery
- 每一页目前在PHP超时检查,由用户检查对最后页面加载当前时间。如果两者之间的差异超过15分钟,则用户的会话被销毁,创建新的会话,当前页面位置被放置到会话上,并且用户被重定向到登录页面。
- 每一页头有
<meta>
标签其中15分5秒后刷新页面(因此“呼叫”超时检查)
我现在目前正在研究增加更多的控制的用户,例如,如果他们碰巧在很长一段时间内在页面上工作,并且正在考虑允许弹出窗口在超时前大约两分钟出现。然后弹出窗口可以选择继续会话(使AJAX调用刷新会话中的最后一个活动)或注销。如果弹出窗口被忽略(例如,如果用户位于不同的页面上),用户将被注销。
根据Using Javascript to override or disable meta refresh tag,我将无法重置<meta>
标记,这可能意味着我必须删除标记。 PHP/Javascript Session Timeout with warning的唯一答案建议使用JavaScript调用重定向到登录页面,但是可以通过禁用JavaScript来绕过这一点。
我想要做的是围绕<meta>
重定向标记<noscript>
(因为我使用的是HTML5,因此可以使用),这样即使用户不使用JavaScript,它们仍然会超时。这也将删除<meta>
标记,以触发用户是否决定继续他们的会话。
这种方法有意义吗?我错过了什么吗?还有另外一种更好的方法吗?
我当前的代码
<?php
require_once("include/session.php");
require_once("include/sessioncheck.php");
?>
<html>
<head>
<meta http-equiv="refresh" content="<?= TIMEOUT_MIN * 60 ?>" />
<!-- additional tags -->
</head>
<body>
<!-- content -->
</body>
</html>
会话超时配置已经存在于PHP配置中。 – MatRt 2013-02-28 23:22:18
@ user1073122 - 虽然看起来我可以在.htaccess文件中对其进行修改,但它看起来像是全局应用的(当我将为不同的用户组添加不同的超时时)。在任何情况下,我都希望在没有用户活动的情况下刷新页面(这意味着用户不一定会在任何地方点击,并且可能已经离开计算机) – 2013-02-28 23:57:29
尝试添加javascript befoer元标记以编辑元标记 – Vineet1982 2013-03-01 02:51:04