我有一个下降设置,用于登录的用户和会话时间()以及一些其他内容添加到表中。
我遇到的问题是,当用户关闭浏览器时,它会从mysql表中删除会话。
从用户的角度来看,它很好,因为他们在打开浏览器时必须再次登录。
但是对于超级用户仪表板,它仍然显示用户在关闭浏览器时已登录。
我确实看过关闭浏览器提醒javascript代码,但我宁愿找到一种方法来做到这一点。
然后我想可能是一个cron脚本但是可以记录用户,除非我每次点击另一个页面时更新时间()。这是唯一的方法吗?
答案 0 :(得分:1)
您的数据库是否没有“isLoggedIn”列。它可以只有一个“lastActivityTime”列。如果currentTime - lastActivityTime< loggedOutTime
答案 1 :(得分:1)
我不相信浏览器会告诉你它正在关闭。
唯一的方法是在服务器上执行此操作。
尝试在每次验证时记录会话的当前时间 - 这将是会话的最后访问时间。
然后,您可以删除超过您决定的某段时间的所有会话。您可以通过cron作业执行此操作,也可以将其添加到会话验证代码中,每个用户都可以帮助保持表格整洁。