我如何更新mysql字段时,我的用户失去连接到我的网站
How can I update a mysql field when my user loses connection to my site?
我想更新一个mysql表字段值为"脱机"当用户失去连接或从我的网站注销。这可能吗?如果是,那么是怎么做的?
不可能。
与其使用一个字段并将其设置为online
和offline
,不如将其设置为INT
字段。每次用户与您的网站交互时,只需用当前时间戳($_SERVER['REQUEST_TIME']
)更新字段。使用该字段,您可以通过查看用户活动了多长时间来推断用户的状态(例如<=30min为在线,而>30min为离线)。
首先,使用PHP会话,为每个访问者分配一个唯一的随机ID。然后创建一个DB行,其中包含这个ID、创建ID的时间和最后一次在线看到ID的时间。
然后,每隔60秒左右,使用jQuery的.load()从服务器加载一个PHP脚本,该脚本只更新mysql数据库中的lastrongeen字段。工作。
为避免溢出,请执行cronjob,或使用随机方法,每X个请求或每分钟清理一次数据库。
使用PHP Session会有帮助。每当用户登录时,在数据库字段中更新PHP的session_id(),众所周知,PHP将会话数据存储在tmp文件夹中。您可以使用cron job扫描此文件夹以查找活动会话。通常会话文件看起来像sess_session_id()。
算法如下
- 用户登录
- 在数据库中更新会话值
- 更新登录状态为OnLine
每1分钟运行一次cron作业,编写CLI程序,这样你就不需要进行不必要的HTTP请求。这个命令行程序将扫描包含会话id的表,您需要在tmp文件夹中搜索相同的(session_id前缀为sess_)。如果文件存在,则用户在线;如果文件不存在,则用户离线。
相关文章:
- 何时可以;我的用户脚本在Javascript中触发右键单击(上下文菜单)
- 我的用户可以通过单击Ajax之外的按钮来访问$_SESSION的内容吗
- Facebook已连接但我的用户是一个空对象
- 为什么我的用户范围的自定义维度会根据过去的匹配而发生变化
- 我怎样才能说服WebStorm我的用户脚本加载jQuery
- 是否有可能/建议解析我的用户输入字符串 w 正则表达式
- 如何将新用户添加到我的用户数据库对象中
- 如何编写脚本以像我的用户一样自动遍历流程
- 从选择菜单中收集我的用户选择以及正确答案
- Firebase应该在我的用户id结构中包含单词“;simplelogin”;
- 未捕获引用错误:<我的用户脚本定义的函数>未定义
- 我的用户脚本没有'我不工作;我不知道为什么(过度使用var关键字)
- 当我的用户收到朋友的未读消息时,我如何切换我的网站标题
- 我如何让javascript在我的用户控件工作的面板内,其可见性是假的页面加载
- 检查我的用户输入的是一组长度的数字
- 有没有任何工具可以自动截图我的用户所在的网页,而她报告错误
- 我如何允许我的用户最好地与提要中的实时xml数据交互
- 如何使我的用户脚本在使用历史记录 API 的网站的特定页面上工作
- 如何允许我的用户在Cognito用户池上重置他们的密码
- 我想添加一个facebook功能,当我的用户失去互联网连接时显示消息