php - PHP 和 Mysql 中的 session

标签 php mysql

我想创建一个页面,我可以在该页面上看到谁登录了我的站点。 对于登录后的每个用户,我创建一个 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/

相关文章:

php - 在查询中创建空间以导出 csv 文件

mysql - 求sql中的最小值

mysql - 聚合函数中的 WHERE

java - 回复 : Joomla/PHP/Java/AJAX

java - JNI : Connecting Java with modules in other programming languages

mysql - 如果记录存在或不存在,如何从多个表中获取数据

php - 如何使用 php 插入具有特定间隔的日期

php - 为什么 MYSQL 在与 int 值比较时将 NULL 或 String 值转换为 0?

php - 用数组附加 protected 对象

php - 学说实体作为另一个实体中的默认值