我有一个数据库表来保存用户活动的日志。它通过我在每个页面顶部的登录检查脚本存储他们在网站上的最新活动,每当他们浏览新页面时,这将更新他们的活动时间。然后,当他们注销时,它会将NOW放入他们的“最后在线时间”。这样,我就可以在网站上生成一个“现在在线的人”列表,而且当有人再次登录时,我可以通过检查存储的最后一次在线时间,告诉他们自上次在线以来的新帖子和活动。
但是,如果有人没有注销,我注意到有几个人这样做了,他们的最后一次在线时间不会更新,自上次访问以来的新活动将不会正常工作。
我正在处理php和会话数据,到目前为止还没有cookie,尽管我想编写一个‘让我保持登录’的功能,它将不得不使用cookies,我想它们可能会有所帮助。
我在想,也许我可以在每个页面上更新一个cookie,用他们的最新活动时间,然后做一个检查,看看时间是否超过几个小时前或类似的。有人有什么建议吗?
谢谢
发布于 2014-03-29 21:43:11
只需设置一个最后在线cookie (用密钥散列以防止伪造),并在每次有人查看页面时更新它。你走在了正确的道路上。
我假设问题是用户只是关闭他们的浏览器选项卡,而不是注销,并且没有触发脚本来更改数据库中的时间戳?或者,用户只是让标签打开了无尽的时间?
无论如何,检查cookie应该会为您处理此功能(但不要忘记使用密钥对其进行散列!懒惰是安全的杀手。)
发布于 2014-03-29 21:21:15
对于最后一个在线功能,只需将时间和日期戳放入数据库,并将其加载到“上次查看”列表中。然后,为了让我保持登录部分,将密码的md5散列保存到cookies中,并在登录时进行检查(使用javascript)。
https://stackoverflow.com/questions/22731452
复制相似问题