【发布时间】:2011-12-20 13:12:24
【问题描述】:
我知道这个问题已经被问过很多次了,即如何使用 php 在网站上跟踪在线用户,如果用户登录到我的网站,我所做的非常基本,我将他们的数据保存到数据库中,一旦他们单击注销我会销毁他们的会话并从我的数据库中删除该用户名。
真正的问题发生在用户直接关闭浏览器时,因为我无法对我的数据库运行 mysql 查询,并且看起来他们仍然登录,尽管他们没有登录。
我不想设置任何时间来销毁 cookie 或会话,因为这不是合适的方法,比如说我将时间设置为 30 分钟,而用户在一分钟内关闭了浏览器,所以他在 29 分钟内关闭了浏览器会出现在网上,所以我不想这样。
谢谢
【问题讨论】:
-
您可以使用 javascript 每隔 {interval} 对用户执行一次 ping 操作,并在超时时删除 sql 中的会话。我建议虽然不要删除,只是设置为离线,这样用户可以在临时连接问题的情况下再次拿起会话
-
@DanSurfrider 会起作用,但每 x 秒发出一次请求的想法让我感到害怕。想象一下服务器每天必须处理的请求量......