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,如需转载请自行联系原作者


相关文章
|
关系型数据库 定位技术 数据库
空间数据中台是什么,怎么用?DataQ空间智能全面开放邀测
阿里云空间数据中台不等同于GIS,它是在DataQ数据资源平台中体系化的整合了空间数据的处理能力,用于空间数据治理和空间领域数字化转型需要。DataQ空间智能包括空间数据同步、空间数据查询和浏览、空间数据管理、空间数据服务和空间数据资产管理等能力。用户可以通过阿里云官网注册账号并开通DataQ的试用白名单来使用DataQ空间智能。在使用过程中,需要注意空间数据源的配置、zip压缩方式、计算集群的设置等问题。DataQ空间智能公共云的开通,将大幅度降低体验和试用的门槛和成本,为线下项目的选型做好准备;同时仍然需要一定的技术投入和耐心,但数字化转型是未来的大势所趋,空间数据中台是必然的选择。
空间数据中台是什么,怎么用?DataQ空间智能全面开放邀测
|
8月前
如何将WordPress文章中的外链图片自动下载到本地?
在WordPress中使用外链图片可能影响稳定性与加载速度,而手动下载上传又过于繁琐。为此,推荐一款强大的开源插件——**nicen-localize-image**。它可自动将外链图片保存到本地,支持文章发布前、手动发布、定时发布时自动本地化,以及对已发布文章进行批量处理。插件功能丰富、操作简单,有效提升效率,确保图片资源的稳定性和页面性能。
235 3
|
Ubuntu 存储 Linux
蓝易云 - ubuntu cmake离线安装
以上就是在Ubuntu上离线安装CMake的步骤。
695 2
|
Web App开发 JavaScript 前端开发
JavaScript 技术篇-navigator.permissions读取chrome剪切板权限获取不生效原因:只有在https协议下使用有效。手动设置chrome页面剪切板读取权限方法
JavaScript 技术篇-navigator.permissions读取chrome剪切板权限获取不生效原因:只有在https协议下使用有效。手动设置chrome页面剪切板读取权限方法
2063 0
JavaScript 技术篇-navigator.permissions读取chrome剪切板权限获取不生效原因:只有在https协议下使用有效。手动设置chrome页面剪切板读取权限方法
|
JavaScript 数据安全/隐私保护 内存技术
Vue 报错error:0308010C:digital envelope routines::unsupported
Vue 报错error:0308010C:digital envelope routines::unsupported
568 0
|
前端开发 JavaScript
案例挑战——MVVM框架理解和实践
案例挑战——MVVM框架理解和实践
512 0
|
数据安全/隐私保护
如何上传专用密码和登录iCloud教程
如何上传专用密码和登录iCloud教程
如何上传专用密码和登录iCloud教程
|
3天前
|
云安全 人工智能 自然语言处理

热门文章

最新文章