php - 如何在php中检测用户是否已注销?

标签 php mysql session redirect logout

用户登录成功后,我将login = true存入数据库。但是如何通过关闭浏览器而不单击注销按钮来检查用户是否已注销?另外,如何将已闲置 10 分钟的用户重定向到登录页面?

我正在使用 php 和 mysql。任何帮助将不胜感激。

编辑: 抱歉,如果我的问题不清楚。我确实使用 session 来存储他们是否已登录。但是,现在我想将信息存储在数据库中,以便我可以在其他页面上显示它们的状态。假设 user1 有 3 个 friend 。在显示他的所有好友时,user1 想知道他的好友是在线还是离线。这就是我要的。有什么建议吗?

最佳答案

2017 年编辑:如今,您最好的选择是使用 websockets 来跟踪页面/网站上的状态。


当用户关闭浏览器或使用 PHP 离开您的站点时,您无法检测到,而且这样做的 JavaScript 技术远不能保证毫无用处。

相反,您最好的选择是最有可能存储每个用户的上次事件时间。

  • 按照“last_activity”行在您的用户表中创建一列。
  • 每当用户加载页面时,将他们的 last_activity 更新为当前时间。
  • 要获得谁在线的列表,只需查询数据库以查找 last_activity 值最近超过 10/20/任何分钟前的用户。

关于php - 如何在php中检测用户是否已注销?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/887919/

相关文章:

java - 禁用 Cookies 也会停止 Session 吗?

Javascript 弹出窗口仅显示 PHP 查询中的最后结果

php - 如何用PHP显示MySQL中的相关数据?

php - SQL Query 找不到获取结果的方法

mysql - 使用 php 循环更新 MySQL 表

PHP 不填写 session 文件

php - 尝试将 php 运算符作为字符串保存在数据库中

mysql - 从 MySQL 到 mongodb 的数据模型

c# - 在 MySQL 中使用 Json 字段,出现不一致的行为 (C#)

php - 将整个应用程序放入$_SESSION 中可以吗?