我想创建一个页面,我可以在该页面上看到谁登录了我的站点。 对于登录后的每个用户,我创建一个 session ,并发送查询以将 mysql 中的“已记录”行从“否”更改为"is"。 然后,在页面上我使用 PHP 向所有人展示,在 mysql 中设置了 Yes,并且它有效。 但是,我有一个问题,当有人在没有单击注销的情况下关闭浏览器时会出现问题 - 查询不会执行并且 mysql 中的 Yes 值保持不变...... 我该怎么做才能创建这样的页面?
最佳答案
与其使用登录或注销的 bool 值,不如确定 session 到期的合理时间量(例如,1 个月),然后将该时间量添加到时间戳中,并将其存储在数据库中作为 session_expires
之类的。然后,无论何时进行登录检查,您都可以检查用户的 session 是否已过期。
此外,要手动使 session 过期(例如,如果用户注销),只需将 session_expires
字段设置为过去的时间戳即可。
编辑
我周末没有使用电脑,所以我无法正确更新我的答案。
如果您需要查看活跃用户,我过去做过的一件事是使用 last_seen
时间戳字段,该字段会在用户在网站上执行任何操作时随时更新。然后,在您的“用户登录”页面上,只需查询最近的内容,例如“过去 15 分钟内最后一次看到”。
关于php - PHP 和 Mysql 中的 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13433798/