discuz在线人数的实现原理(Discuz6.1.0)

简介:

1、首页上的“在线会员”,显示的是简略版

2、点击首页上的“在线会员”,去到“在线用户”的详细页,http://yourdomain.com/member.php?action=online

        实现原理:依赖于一个session表,{$tablepre}sessions。

        用户进入论坛(index.php:197行)或者版块首页(forumdisplay.php:207行)会触发一个 updatesession()函数(在include/global.func.php里面定义),还有其他地方也有触发这个函数。这个函数会往 {$tablepre}sessions表里面插入一条新记录(已有记录则更新这条记录),插入的内容包括当“前动作”的代号、当前论坛ID,当前主题 ID。

        首页取在线会员数首页是取$_DCOOKIE['onlineusernum'] 值($_DCOOKIE其实就是$_COOKIE),没有的话再从sessions表里面count(*)一下,还有一些处理总在线人数、游客人数、隐身 人数的逻辑处理,具体的可以看一下index.php 173-240之间的代码;在线用户页(member.php 23行-50行之间),也是也从sessions表里面count(*)一下总在线人数,然后再根据sessions表里面的fid(论坛ID)和 tid(主题ID)左连接forums、threads表取得论坛名称、帖子标题,至于“当前动作”,sessions里面保存的是一个代号,相对应的文 字在templates/default/action.lang.php文件里面“当前动作”是一个全局变量$discuz_action ,在不同页面有不同的值,如在:
index.php     $discuz_action = 1;(浏览论坛首页)
logging.php    $discuz_action = 6;(登录论坛)
viewthread.php  $discuz_action = 3;(浏览帖子)

以上代码是针对DZ6.1版本。



      本文转自许琴 51CTO博客,原文链接:http://blog.51cto.com/xuqin/882307,如需转载请自行联系原作者


相关文章
|
弹性计算 Linux 数据库
快速用Discuz搭建论坛网站教程
Discuz! 是全球成熟度最高、覆盖率最大的论坛网站软件系统之一,被200多万网站用户使用,本文教你一步一步快速用阿里云免费的Discuz官方系统搭建论坛网站。
43936 0
|
6月前
|
缓存 前端开发 PHP
【超详细】php实现扫码关注微信公众号系统/网站自动注册登录
【超详细】php实现扫码关注微信公众号系统/网站自动注册登录
331 0
|
关系型数据库 MySQL Apache
Discuz贴吧建站的搭建及维护(windows系统)
Discuz贴吧建站的搭建及维护(windows系统)
229 0
|
存储 关系型数据库 MySQL
解锁成就,LNMP源码Discuz搭建论坛系统!
解锁成就,LNMP源码Discuz搭建论坛系统!
271 0
|
安全 关系型数据库 MySQL
WordPress上线笔记
WordPress上线笔记
WordPress上线笔记
|
弹性计算 关系型数据库 MySQL
使用 Discuz 快速搭建论坛 | 学习笔记
快速学习 使用 Discuz 快速搭建论坛
234 0
使用 Discuz 快速搭建论坛 | 学习笔记
|
JavaScript
【Discuz】如何实现自动注册登录
【Discuz】如何实现自动注册登录
533 0
【Discuz】如何实现自动注册登录
|
算法 安全 数据库
使用 Discuz 快速搭建论坛|学习笔记
快速学习 使用 Discuz 快速搭建论坛
219 0
|
弹性计算 关系型数据库 PHP
快速搭建phpwind论坛系统
phpwind 是采用 PHP + MySQL 方式运行的开源社区程序。轻架构,高效率简易开发,帮助您快速搭建并轻松管理社区站点。本文介绍如何使用云市场的 PHPWind论坛系统(含智慧云虚机面板) 快速搭建论坛。
15298 0
|
NoSQL 安全 Redis
开发者论坛一周精粹(第七期):阿里云Redis加速Discuz论坛访问
由于阿里云ECS服务器内存只有悲催的的1G,并且只剩下了几十MB,实在不想再糟蹋她了。 你是否还在为网站访问速度而苦恼,你是否还在恐惧全国各地而来的访客。不用慌、不用怕 阿里云Redis为你保驾护航排忧解难,在这互联网的冬天让你依靠温暖的胸膛。
2975 0