【发布时间】:2012-10-28 01:44:14
【问题描述】:
我的应用程序当前存储一些基本的_SESSION 事件,例如登录和请求的每个页面/URI。我被要求增强事件日志记录以包括用户注销时的跟踪。
注销的问题在于用户并不总是记得单击专用的注销按钮。有时他们只是让浏览器保持打开状态,或者关闭打开的浏览器窗口,或者干脆关闭。我不能总是保证确切的注销事件。
我可以通过在事件表中查询没有活动的时间段来粗略了解用户注销时间,但这似乎很粗略。
是否有检测 PHP 中被动注销的最佳实践?
【问题讨论】:
-
我会搭载会话 TTL。您使用的是数据库表还是文件系统?不要认为你真的可以连接到会话 GC,所以可能只想轮询会话。
-
客户端每分钟向服务器发送一次心跳。如果客户端关闭浏览器,则不再有心跳。
-
答案就在您的问题中。使用用户的最后活动时间戳,包括您设定的不活动时间(即使用 cronjob)——在这种特定情况下,依赖客户端输入确实没有什么好的方法。
标签: php session logging tracking logout