我正在使用CodeIgniter v3。我想存储用户登录和注销时间。当用户登录时,存储登录时间,单击注销按钮时,更新表中的用户记录。当他/她单击登录按钮时,这种情况很好。
但是,如果没有发生点击,则有两个问题:
- 会话过期时(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