用户最后一次在线的时间


When a user was last online

我有一个数据库表来保存用户活动的日志。它通过我的登录检查脚本在每个页面的顶部将他们的最新活动存储在网站上,每当他们浏览新页面时,都会将他们的活动时间更新为NOW。当他们注销时,系统会把"现在"变成"最后一次上网时间"。通过这种方式,我可以在网站上生成"谁现在在线"列表,并且当有人再次登录时,我可以通过检查存储的最后在线时间来告诉他们上次在线以来的新帖子和活动。

然而,如果有人不注销,我注意到有几个人这样做,他们最后一次上网的时间不会得到更新,自从上次访问以来的新活动将无法正常工作。

我在php和会话数据工作,还没有cookie,虽然我想编码一个'让我登录'的功能,这将不得不使用cookie,我认为他们可能会有所帮助。

我想我也许可以在每个页面上更新他们最近的活动时间的cookie,然后做一个检查,看看时间是否超过几个小时或类似的东西。有人有什么建议吗?

谢谢

只需设置最后在线cookie(使用秘密密钥进行散列以防止伪造),并在每次有人查看页面时更新它。你走对了路。

我认为问题是,用户只是关闭他们的浏览器选项卡,而不是注销,它不会触发脚本,改变时间戳在数据库?或者用户只是让标签打开了数不清的时间?

无论如何,检查cookie应该为您处理此功能(但不要忘记使用密钥对其进行散列!懒惰是安全的杀手。

对于最后一个在线功能,只需将时间和日期戳放入数据库并将其加载到'last seen'列表中。然后保存密码的md5散列到cookie中,并在登录时检查(使用javascript)。