【问题标题】:How to end user session on window close, PHP如何在窗口关闭时结束用户会话,PHP
【发布时间】:2017-12-13 23:15:03
【问题描述】:

首先,我对 Web 开发和 PHP / JQUERY 等非常陌生。

在我的网站中,用户可以登录,这会设置一些 $_SESSION 变量,并将他们的用户名存储在“活动用户”MYSQL 表中。如果他们通过单击“注销”按钮手动注销,一切都很好 - 但是,如果他们选择关闭浏览器窗口而不注销,则数据库不会更新。

我看到 javascript 的“onunload”事件是不可取的,并且我看到过提到检查不活动。浏览器关闭后,我不明白如何检查任何内容。

如果用户决定关闭浏览器,我该如何确保用户的会话被终止?

【问题讨论】:

    标签: php session


    【解决方案1】:

    您应该使用lastSeen 在数据库中创建一个dateTime,并在每次请求时检查它,如果用户提出新请求并且时差为 10 分钟,您将他注销并重定向到登录屏幕。

    如果您想查看您网站上有多少活跃用户,您可以查询什么是仅显示最近 10 分钟内看到的用户。

    ps;:10 分钟当然可以或多或少。

    【讨论】:

    • 感谢您的回复。假设我这样做了,这段代码会在哪里运行?比如,如果用户已经关闭了浏览器,这些“最后一次看到”的检查将如何进行?或者这个系统是否依赖于至少 1 个活跃的用户来运行检查?
    • 你可以这样做,但我强烈建议不要有active user"table,只有具有last_seen字段的用户,并在服务器端实现一些计算活动用户的逻辑.我之前提到的。
    • 请解释最后一部分,我不知道你可以有“服务器端”的逻辑。我可以在 SQL 上设置脚本或其他东西吗?这是如何完成的,或者我可以在哪里阅读告诉我如何在 MYSQL 上设置逻辑的内容?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-24
    相关资源
    最近更新 更多