0

我正在保留我网站的活跃用户列表。当用户登录时,我将它们添加到列表中。

然后我定期(按计时器)调用一个 PHP 脚本,该脚本每次将服务器上的 PHP 会话到期时间延迟 10 分钟。

当用户注销时,我将它们从活动用户列表中删除。由于计时器停止并且过期不再延迟,PHP 会话将在 10 分钟后过期。

到目前为止,一切都很好。

当用户在未注销的情况下关闭浏览器时,他们的会话仍然会在 10 分钟后过期,因为时间戳不再更新。

但是这个用户仍然在我的活跃用户列表中!!

如何删除此用户?

我保留此列表是为了防止用户同时从两台计算机进入,这是客户要求。

编辑:我确信这可以作为银行网站、票务网站等以某种方式解决这个问题。

4

2 回答 2

0

您可以尝试更频繁地更新“活动用户”列表,但在每次登录时清除用户的会话数据通常更有意义。因此,如果从另一台计算机发生第二次登录,则第一次登录将在下一页加载时终止。

于 2013-06-16T01:01:10.333 回答
0

简单的答案是你不能。无论如何,不​​是单独使用 PHP。如果您愿意强制使用 javascript,您可以编写一个脚本,该脚本会定期从用户的浏览器“轮询”服务器,让它知道用户仍然处于活动状态。然后您还可以减少为您设置的时间间隔PHP 脚本可以更准确地更新内容。

于 2013-06-16T00:59:53.710 回答