我的数据库上有一个名为'Log'的表。此Log表包含ID,Username,LoginTime和LogoutTime。就是这样。
INSERT到ID,Username和LoginTime列真的很容易......
但是在处理LogoutTime时,我认为会有2个条件:
用户点击退出按钮>>问题已解决,我可以轻松地将INSERT脚本放在我的logout.php上以处理LogoutTime列。
用户只需点击其浏览器的关闭按钮>>即可离开我的网站。这会引起一个问题。在这种情况下,如何写入LogoutTime列?
只能由PHP处理吗?我的意思是,不必使用jQuery ......先谢谢。
答案 0 :(得分:3)
完成此任务的最常见解决方案是使用超时。因此,您定期运行一个cron,检查是否有用户不再处于活动状态。例如,过去半小时内没有请求。然后在那一刻添加注销时间。
因此,每个操作都会使用上次请求时间更新用户会话,以便您知道他们何时超时。
无法控制100%关闭浏览器。例如,考虑一下客户端计算机的电源故障,您肯定无法获得任何回报。
答案 1 :(得分:1)
在IE中你可以尝试这样的事情:
< body onbeforeunload="alert('Closed!');">
答案 2 :(得分:1)
你可以实现类似的东西,时间可以根据你的需要而不同
if (isset($_SESSION['browser_last_activity']) && (time() - $_SESSION['browser_last_activity'] > 1800)) {
// request 30 minates ago
// set the logout time here
}
$_SESSION['browser_last_activity'] = time(); // update last activity time
但是你无法通过php实现100%满足你的要求的功能。
使用javascript你可以尝试使用onbeforeunload
,这是一个很好的做法,而不是使用javascript,而不是因为开销原因而在PHP中。