【问题标题】:How do I get a list of active users with PHP?如何使用 PHP 获取活跃用户列表?
【发布时间】:2013-01-14 16:48:30
【问题描述】:

我目前维护一个用户数据库表,登录后我用他们的 ID 和 login_time 更新表。这在一定程度上有效,但目前我无法判断用户自登录后是否一直处于活动状态或持续了多长时间。

有没有更好的方法来获取过去 X 分钟内活跃的用户的完整列表?

【问题讨论】:

  • 您可以在表格中添加“最后一次看到”列,并在每次用户提出新请求时刷新该列
  • @Pekka 这需要另一个数据库调用,所以我不确定这是最好的解决方案。
  • @Pekka웃: 如果用户登录但没有更改页面怎么办?
  • 对大多数网站来说,发出数据库请求应该没问题。如果您有 巨大 流量,您可能希望在某个时候切换到内存缓存,但数据库调用不会对中低流量站点造成任何性能问题。任何没有静态缓存的 CMS 驱动的网站都会在每个请求中生成几十个
  • @Paul,“访问”的结束只能通过显式注销或超时来定义。看这里:stackoverflow.com/questions/679657/find-number-of-open-sessions

标签: php mysql sql


【解决方案1】:

获得所需内容的最佳方式是在 users 表中添加“Last Activity”列。每当用户访问页面时,您只需更新它。根据您需要的信息,它可以替换 login_time 列,也可以是新列。

【讨论】:

    【解决方案2】:

    您必须跟踪用户在您的数据库中作为单独的表或列发出最后一次请求的时间。然后,您可以制定要选择的查询,例如在过去 5 分钟内发出请求的所有用户。

    PHP 本身不存储或关心此类信息。除非您碰巧拥有自己的会话管理模块来存储此类信息,否则您可以使用其中的数据。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-11-12
      • 2021-12-27
      • 2012-02-04
      • 1970-01-01
      • 2013-02-27
      相关资源
      最近更新 更多