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