如何检测用户何时空闲一段时间并在PHP中销毁其会话?

时间:2010-01-27 08:23:06

标签: php session python-idle

我想让我的PHP网站破坏用户会话,如果他们闲置了5分钟。如果发生这种情况,我想向用户显示一条消息,说明他们为何被注销并将其重定向到登录页面。

处理此问题的最佳方法是什么?

我在php和myadmin上运行。

由于

阿维纳什

4 个答案:

答案 0 :(得分:7)

每次加载页面时,都会在会话变量中存储时间戳。当用户转到某个页面时,请检查是否$SESSION['lastActivity'] < time() - <your idle time>。如果为true,则重定向到“您的会话已过期”页面或类似内容。如果没有,请继续加载页面。

答案 1 :(得分:1)

我认为你的意思是'空闲'。无需计算,但您必须存储该用户进行的最后一次(经过身份验证的)访问并重置计数器。 通常,应该发出具有特定时间戳的身份验证cookie。在验证cookie后,您将当前时间与时间戳进行比较。如果此差异大于某个阈值(例如5分钟),则会显示错误页面。 为了改善用户体验,您可能还希望向用户显示计时器,这样就不会出现意外情况。

答案 2 :(得分:1)

你能不能只使用PHP的内置会话功能将会话到期时间设置为5分钟。如果会话不再存在,则重新指导?

答案 3 :(得分:0)

创建一个具有x分钟超时的javascript函数,弹出并重定向。

同样在服务器上确保他们的会话过期,以便在Javascript不可用的情况下,他们无法在空闲时间过后继续操作。