我数据库的一个表中有一个字段,只要用户单击注销按钮,该字段就会更新。我遇到的问题是,在会话不活动且用户未单击注销按钮时如何更新字段。
我首先想到是要检查用户是否关闭浏览器,但是我对此不太确定。
我的另一个想法是,经过一定时间的不活动之后,它会更新数据库中的字段,但是我不知道该怎么做。
有更好的方法吗?
答案 0 :(得分:0)
让我考虑一些用例来回答您的问题。看到用户处于离线状态->
这些是可能的情况。我可以建议您做的最好的解决方案 数据库中还有一个名为
last_activity
的字段,该字段可能 包括用户上次执行的操作,随时间保存。更新数据库 同时在每个特定时间检查此字段,即调用函数 在一定时间间隔内,并相应地更新数据库。
$mysqli->prepare('UPDATE User SET last_action=NOW() WHERE username=?');
一旦有了,您就可以根据服务器上“在线”的含义(通常为last_action > NOW() - [some_duration]
)列出所有拥有last_action > NOW() - one hour)
的用户。
您可以通过其在线离线状态随时跟踪所需的一切。