Codeigniter:存储用户登录和注销时间

时间:2016-02-01 22:03:41

标签: php codeigniter session

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

但如果点击不发生则有两个问题:

  1. 会议期满(2小时后)
  2. 关闭浏览器窗口/标签页
  3. 对于第一个问题,在下一次登录时,我将上次登录时间增加2小时并更新最后一条记录(不是当前记录)。但这并不准确,因为用户可能会重新加载并延长会话到期时间。例如:用户在下午5:30登录并在下一个小时内多次重新加载页面并延长会话到期时间。

    如果上次重新加载时间是晚上8点,那么会话将在晚上10点到期,但我存储在晚上7:30。注销时间!第二,没什么!

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

1 个答案:

答案 0 :(得分:1)

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

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