代码点火器:存储用户登录和注销时间


Codeigniter: store user login and logouts times

我正在使用CodeIgniter v3。我想存储用户登录和注销时间。当用户登录时,存储登录时间,单击注销按钮时,更新表中的用户记录。当他/她单击登录按钮时,这种情况很好。

但是,如果没有发生点击,则有两个问题:

  1. 会话过期时(2 小时后)
  2. 关闭浏览器窗口/选项卡时

对于第一个问题,在下次登录时,我在上次登录时间上加 2 小时并更新上次记录(不是当前记录)。但这并不精确,因为用户可能会重新加载并延长会话过期时间。例如:用户在下午 5:30 和接下来的 2 小时内登录多次重新加载页面并延长会话过期时间。

如果最后一次重新加载是在晚上 8:00,会话将在晚上 10:00 过期,但我存储了晚上 7:30 用于注销时间! 其次,什么都没有!

有关这些问题的任何帮助和指导将不胜感激...

  • 添加另一个日期时间字段,称为类似 session_timeactive_last然后,每次登录用户执行任何操作(包括他们首次登录时)时,您都会在该字段中记录时间。.

  • 创建一个每 15 分钟运行一次的脚本。 它首先检查字段session_logout_time,如果有值,则忽略该记录。如果没有值,则在 session_timeactive_last 中查找。如果该值超过两个小时,则它将 2 小时添加到 session_timeactive_last 的值并将其写入session_logout_time