【问题标题】:Removing users session from mysql table if they click close on browser如果他们在浏览器上单击关闭,则从 mysql 表中删除用户会话
【发布时间】:2012-07-21 07:44:34
【问题描述】:

我为用户登录设置了一个下降,并且有一个会话 time() 和其他一些添加到表中的东西。

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

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

但对于超级用户仪表板,如果用户关闭浏览器,它仍会显示用户已登录。

我确实查看了关闭浏览器警报 javascript 代码,但我宁愿找到一种方法来做到这一点。

然后我想可能是一个 cron 脚本,但这可能会使用户注销,除非我每次点击另一个页面时都更新 time()。这是唯一的方法吗?

【问题讨论】:

    标签: php mysql session


    【解决方案1】:

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

    唯一的方法是在服务器上进行。

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

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

    【讨论】:

    • 干杯,我想我会去 cron。它只会让我将它添加到我正在运行的其他 cron 脚本中,这样我就可以将所有这些家务保存在一个地方。
    【解决方案2】:

    您的数据库可以没有“isLoggedIn”列吗?它可以只有一个“lastActivityTime”列吗?如果 currentTime - lastActivityTime 则用户退出

    【讨论】:

    • 感谢您的回答,它与@AW101 相同,但他们提到了 cron 以及我如何在代码中处理它的替代方法。我会给你一个,但我会给他们打勾。谢谢你们俩。 :)
    猜你喜欢
    • 1970-01-01
    • 2011-01-12
    • 1970-01-01
    • 2015-07-03
    • 2012-10-26
    • 2012-09-02
    • 2017-05-26
    • 2013-11-29
    • 1970-01-01
    相关资源
    最近更新 更多