Php 如何处理在线状态。客人、用户等
跟踪有多少用户和客人在线的最佳方法是什么?我正在做一个有趣和学习的论坛 现在,我在用户表中有两个字段,分别是Php 如何处理在线状态。客人、用户等,php,mysql,database-design,Php,Mysql,Database Design,跟踪有多少用户和客人在线的最佳方法是什么?我正在做一个有趣和学习的论坛 现在,我在用户表中有两个字段,分别是is\u online和last\u access\u time 如果当前时间是5分钟或比我设置的上次访问时间多,则将其设置为零。如果登录用户刷新浏览器,我将其设置为1 但是客人呢?我想知道有多少客人也在 另一件非常酷的事情是显示用户正在查看的页面。在页面上,例如论坛线程,5位来宾,荷马和肖默正在查看此页面。但是我应该如何构建这个呢?嗯,也许我应该再问一个问题 我不知道我该怎么办 您有什么
is\u online
和last\u access\u time
如果当前时间是5分钟或比我设置的上次访问时间多,则将其设置为零。如果登录用户刷新浏览器,我将其设置为1
但是客人呢?我想知道有多少客人也在
另一件非常酷的事情是显示用户正在查看的页面。在页面上,例如论坛线程,5位来宾,荷马和肖默正在查看此页面。但是我应该如何构建这个呢?嗯,也许我应该再问一个问题
我不知道我该怎么办
您有什么建议?您无法确定用户正在查看哪个页面,但您可以跟踪他们上次查看的页面。每次将页面交付给用户时,请在与其关联的数据库行中记录该页面的路径。瞧
为了保持来宾的数量,我建议跟踪在过去X分钟内在某个页面上看到的不同的未经验证的IP/HTTP用户代理组合的数量。我在WebMonkey上找到了这篇文章,这可能会对您有所帮助
我会用cookies来做这个。在用户输入时设置cookie(首先检查以确保cookie不存在)。为该用户生成唯一id的简单方法是将其IP加上当前时间进行散列
$id = md5($_SERVER['REMOTE_ADDR'] . time());
将该id存储在数据库中并用于引用
您可以通过抓取PHP源代码顶部附近的$\u SERVER['PHP\u SELF']或$\u SERVER['REQUEST\u URI']来检查他们正在查看的页面。把它放在桌子上。我将看一看php.net对_serverglobal中存储的内容的解释,因为如果您发现您需要的不仅仅是它们所在的文档(例如index.php),那么它应该会有很大帮助
您可能需要分离用于访问该页面的查询字符串,解析出变量以确定它们请求的页面。无论哪种方式,都可以通过cookies来完成,或者只使用一个cookie来存储唯一的id,并使用您的表来存储其他所有内容。+1和+fav。好问题,我也会等待回复。您还可以通过执行AJAX请求来跟踪当前正在查看的页面,以便将信息实时发送到要录制的web服务器。