【问题标题】:When a user was last online用户上次在线时间
【发布时间】:2014-03-29 13:04:11
【问题描述】:

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

但是,如果有人没有退出(我注意到有几个人这样做),则他们的上次在线时间不会更新,并且自上次访问以来的新活动将无法正常工作。

我正在处理 php 和会话数据,目前还没有 cookie,但我想编写一个必须使用 cookie 的“保持登录”功能,我认为它们可能会有所帮助。

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

谢谢

【问题讨论】:

  • 创建一个上次看到的列,更新你所需要的时间戳
  • 谢谢,这就是我已经拥有的“最后一次在线”,以及我最近逐页更新的活动,但是如果他们不这样做,我如何使最后一次在线保持最新登出?当您再次登录时,您最近的活动会更新到现在,因此对此没有好处。

标签: php cookies


【解决方案1】:

只需设置一个最后在线 cookie(使用密钥散列以防止伪造),并在每次有人查看页面时更新它。你在正确的轨道上。

我认为问题在于用户只是关闭了浏览器选项卡而不是注销,并且没有触发更改数据库中时间戳的脚本?还是用户只是让标签页打开了无数时间?

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

【讨论】:

  • 是的,人们只是关闭了浏览器,因此不会触发正确的脚本。并感谢您的安全提示!到目前为止,我对此有点懒惰。哎呀。我会看看我如何处理饼干,谢谢!
【解决方案2】:

对于最后一个在线功能,只需将时间和日期戳放入数据库并将其加载到“最后一次看到”列表中。然后为了让我保持登录状态,将密码的 md5 哈希值保存到 cookie 中,并在登录时检查(使用 javascript)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-24
    • 2012-03-20
    相关资源
    最近更新 更多