如何使用 PHP 实现“谁在线”功能?当然,这将涉及使用时间戳,并且在查看 phpBB 的会话表之后,可能涉及将最新访问存储在数据库中。
这是一种有效的方法,还是有更好的方法来实现这个想法?
编辑:我无意中创建了这个社区 wiki,因为当时我还是 Stack Overflow 的新手。
如何使用 PHP 实现“谁在线”功能?当然,这将涉及使用时间戳,并且在查看 phpBB 的会话表之后,可能涉及将最新访问存储在数据库中。
这是一种有效的方法,还是有更好的方法来实现这个想法?
编辑:我无意中创建了这个社区 wiki,因为当时我还是 Stack Overflow 的新手。
使用数据库来跟踪每个登录的人几乎是做到这一点的唯一方法。
我要做的是,在表中或当有人登录时插入一行包含用户信息和时间戳的行,并在每次与该用户有活动时更新时间戳。我会假设在过去 5 分钟内进行过活动的所有用户当前都在线。
根据您实施(以及是否实施)会话的方式,您可以使用相同的存储媒体来获取活动用户的数量。例如,如果您使用基于文件的会话模型,只需扫描包含会话文件的目录并返回会话文件的数量。如果您使用数据库存储会话数据,则返回会话表中的行数。当然,这是假设您对会话的超时值感到满意(即,如果您的会话有 30 分钟的超时,您将获得最近 30 分钟内的活跃用户列表)。
我想这样做:
当用户登录时,他的用户 ID 和时间戳将被插入到一个表中。然后每隔 5 分钟,我将通过 ajax 调用一个 php 脚本来检查用户是否已登录,如果是,则更新他在表中的时间戳。
如果用户没有登录,只需删除他的记录。
我想你可以简单地用 php
创建表用户包括,用户名,密码和状态(1,0)