我正在使用CodeIgniter v3。我想存储用户登录和注销时间。当用户登录,存储登录时间和单击注销按钮时,更新表中的用户记录。当他/她点击loggout按钮时,这种情况很好。
但如果点击不发生则有两个问题:
对于第一个问题,在下一次登录时,我将上次登录时间增加2小时并更新最后一条记录(不是当前记录)。但这并不准确,因为用户可能会重新加载并延长会话到期时间。例如:用户在下午5:30登录并在下一个小时内多次重新加载页面并延长会话到期时间。
如果上次重新加载时间是晚上8点,那么会话将在晚上10点到期,但我存储在晚上7:30。注销时间!第二,没什么!
有关这些问题的任何帮助和指导都将不胜感激......
答案 0 :(得分:1)
添加另一个名为session_timeactive_last的日期时间字段 然后,每次登录用户执行任何操作(包括首次登录时),都会记录该字段中的时间。
创建一个每15分钟运行一次的脚本。它首先检查该字段 session_logout_time并且如果有值则忽略该记录。如果没有值,那么它在session_timeactive_last中查找。如果该值超过两个小时,那么它会从session_timeactive_last中增加2小时并将其写入session_logout_time