如果在浏览器上单击关闭,则从mysql表中删除用户会话

时间:2012-07-20 23:33:57

标签: php mysql session

我有一个下降设置,用于登录的用户和会话时间()以及一些其他内容添加到表中。

我遇到的问题是,当用户关闭浏览器时,它会从mysql表中删除会话。

从用户的角度来看,它很好,因为他们在打开浏览器时必须再次登录。

但是对于超级用户仪表板,它仍然显示用户在关闭浏览器时已登录。

我确实看过关闭浏览器提醒javascript代码,但我宁愿找到一种方法来做到这一点。

然后我想可能是一个cron脚本但是可以记录用户,除非我每次点击另一个页面时更新时间()。这是唯一的方法吗?

2 个答案:

答案 0 :(得分:1)

您的数据库是否没有“isLoggedIn”列。它可以只有一个“lastActivityTime”列。如果currentTime - lastActivityTime< loggedOutTime

答案 1 :(得分:1)

我不相信浏览器会告诉你它正在关闭。

唯一的方法是在服务器上执行此操作。

尝试在每次验证时记录会话的当前时间 - 这将是会话的最后访问时间。

然后,您可以删除超过您决定的某段时间的所有会话。您可以通过cron作业执行此操作,也可以将其添加到会话验证代码中,每个用户都可以帮助保持表格整洁。