我有一个简单的问题。我已经编写了授权系统,我想在数据库中保存任何会话,因为我想写聊天和有关上次登录用户的信息。保存会话非常简单,当用户单击注销更新时,结束时间的记录也很简单,但有时用户不会单击注销但关闭选项卡或关闭浏览器,我会考虑脚本检查用户是否活跃但我怎么能这么做?
我不知道如何检查某些用户的会话是否处于活动状态,或者用户现在是否正在运行我的网站。
答案 0 :(得分:1)
除了必须点击的明显退出按钮外。 对于您描述的任何其他事件,您无法使用PHP注销100%。 每次用户执行站点操作时,您都可以在数据库上写入一个值,例如last_activity_datetime,如果没有活动,则在x时间后假设注销(最好与您的会话最大生命周期相匹配)
答案 1 :(得分:1)
跟踪用户离开页面的唯一方法是保持与客户端的持续连接。如果你真的需要获得登录/注销的确切时间,请查看带有socket.io的node.js - 你可以保持与客户端的连接,直到它们离开页面为止。对于你想要做的事情,这可能有些过分,但如果你计划在将来添加类似聊天的东西,node.js将是一个非常有用的选项。它可以与主Web服务器一起运行,并且可以彼此通信以共享信息。我在我的网站上使用它来向其他用户传播事件和通知。