当前位置: 首页 > 面试题库 >

确定用户是否在线的最简单方法是什么?(PHP / MYSQL)

沈实
2023-03-14
问题内容

有没有一种方法可以使会话中断以了解用户是否在线?

即:使用登录名,设置一个$ _SESSION变量,用户超时cookie垃圾收集器更新数据库以将其状态更新为脱机。

EDIT:我想要一个不涉及时间或日期的解决方案。我希望某些东西可以参加会议或类似的活动。猜测某人是否在线并不能满足我的需求。


问题答案:

不要理会时区之间的差异。没必要

每当用户访问页面时,最后一次更新其在用户表的记录中的字段。然后查询最近5分钟内具有最后更新时间的所有用户。除此之外,它们被认为是“离线”。

如果您使用服务器时间,则可以通过MySQL中的NOW()函数来计算时区之间的时差。

这是跟踪当前在线用户数的标准方法(意思是,在最近几分钟内处于活动状态)。

不断更新

如果您想知道它们即使没有从一个页面跳到另一个页面也仍然处于活动状态,请添加一些JavaScript,每60秒左右ping您的服务器,以使您知道它们仍然有效。它的工作方式与我最初的建议相同,但是它将更新您的记录,而无需他们至少每五分钟疯狂地浏览您的网站一次。

var stillAlive = setInterval(function () {
    /* XHR back to server
       Example uses jQuery */
    $.get("stillAlive.php");
}, 60000);


 类似资料:
  • 我已经启动并运行了AngularJS和web.api WAAD身份验证。对于客户端,我使用了很棒的库adal.js。对于后端,我使用Microsoft.OWIN.Security.OAuth。这部分进行得相当顺利。 现在我要实现基于角色的授权(将映射到WAAD组)。组不包括在身份验证令牌中,所以我必须向Azure Graph API请求它们。我看到了各种实现方法,例如使用自定义声明提供程序、向pr

  • 问题内容: 使用PHP(给定URL),如何确定它是否是图像? URL没有上下文-它只是在纯文本文件的中间,或者可能只是一个字符串。 我不希望开销很大(例如,读取URL的内容),因为页面上的许多URL都可以调用此方法。鉴于此限制,识别所有图像并不是必需的,但是我想作一个很好的猜测。 目前,我只是在看文件扩展名,但是感觉应该有比这更好的方法。 这是我目前拥有的: 编辑: 如果对其他人有用,这里是使用E

  • 问题内容: 反转此ArrayList的最简单方法是什么? 问题答案: 示例(参考):

  • 反转这个ArrayList的最简单方法是什么?

  • 问题内容: 我知道有太多的 $ _SERVER 变量标头可用于IP地址检索。我想知道是否就使用上述变量最准确地检索用户的真实IP地址(众所周知没有一种方法是完美的)是否达成共识? 我花了一些时间试图找到一个深入的解决方案,并根据许多资源提出了以下代码。如果有人可以在答案中戳出一个洞或阐明一些可能更准确的内容,我将非常喜欢。 编辑包括来自@Alix的优化 警告语(更新) 仍然代表IP地址的 最可靠

  • 问题内容: 假设我有一大堆值aa bb cc dd ee ff gg等,我需要在春季作为构造函数传递 如果我需要配置为字符串数组,那么在春季很容易,因为我们可以将值指定为以逗号分隔,例如aa,bb,cc等。 如果我需要配置为列表,则需要执行以下操作 当值的数量增加时,它占据了巨大的界限,并且看起来很丑陋。 可以请一些人帮我如何将大值作为字符串列表传递给构造函数吗? 问题答案: 值是否从属性文件传递