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版本。

转载于:https://blog.51cto.com/xuqin/882307

discuz在线人数的实现原理(Discuz6.1.0)相关推荐

  1. HwBinder原理总结-Android10.0 HwBinder通信原理(十一)

    摘要:本节主要来进行Android10.0 HwBinder的原理总结 阅读本文大约需要花费14分钟. 文章首发微信公众号:IngresGe 专注于Android系统级源码分析,Android的平台设 ...

  2. flannel原理初探针对0.1.0版本

    flannel flannel是针对k8s设计的三层的网络解决方案.在k8s中为了使pod之间能够使用一种偏平的网络架构,从而完成跨Pod的网络通信. 官网给的原理图如下: flannel 使用TUN ...

  3. javascript真的是异步的吗?且看setTimeout的实现原理以及setTimeout(0)的使用场景

    在今天之前我一直以为setTimeout这个函数是异步的,无意中看到了一篇关于setTimeout的文章.发现自己曾经的认识全是错误的,赶紧总结下. 先看一段代码: var start = new D ...

  4. 结合 category 工作原理分析 OC2.0 中的 runtime

    绝大多数 iOS 开发者在学习 runtime 时都阅读过 runtime.h 文件中的这段代码: struct objc_class {Class isa OBJC_ISA_AVAILABILITY ...

  5. Apache kafka原理与特性(0.8V)

    前言: kafka是一个轻量级的/分布式的/具备replication能力的日志采集组件,通常被集成到应用系统中,收集"用户行为日志"等,并可以使用各种消费终端(consumer) ...

  6. 图解 Vue3.0 编译器核心原理(Vue3.0源码解析)

    概览 Vue.js作为目前最流行的前端框架之一,一些概念和原理还是需要我们前端开发人员了解与深入理解的. Vue.js涉及的知识点很多,一些重要概念,例如:如何使用proxy实现响应式effect,虚 ...

  7. 编译原理php,PHP8.0新特性:JIT即时编译

    JIT编译原理 一.查看JIT编译原理图 二.Zend Opcache作用 1.检查opcodes是否缓存 2.zend compiler编译器进行编译生成opcodes 3.optimizer优化器 ...

  8. 【阻容降压电路】 原理 + multisim 14.0仿真 参数计算

    阻容降压电路 阻容降压电路常用于电风扇等廉价家用电器中 ,由于其成本较低.不易发生零火短路的特性的特性如今还在大规模应用. 简单实用的电路,今天就来把这个电路好好总结一下! Multisim软件版本 ...

  9. storm显微镜成像原理_N-STORM 4.0超分辨显微成像系统

    N-STORM 4.0超分辨显微成像系统 尼康新一代N-STORM 超分辨显微成像系统 与N-STORM相比,N-STORM 4.0的图像采集速度提高了10倍,使得活细胞纳米级分辨率图像的拍摄成为了可 ...

最新文章

  1. 爬取了1W个字节跳动岗位信息,我发现了什么?
  2. 前沿|《细胞》:绕过眼睛植入幻觉,科学家成功在盲人脑海中呈现指定图像!...
  3. PyQt5——布局管理
  4. 【数据结构与算法】之深入解析“最小栈”的求解思路与算法示例
  5. django-后台传图0912
  6. CN笔记:第三章 链路层
  7. 使用Fiddler自定义百度云分享提取码
  8. 拓端tecdat|R语言中多分类问题 multicalss classification 的性能测量
  9. java的ArrayList分析
  10. MT4自带30项指标介绍
  11. 实用!Excel在线网页版表格Luckysheet源码
  12. 不知道前端课程学什么?这份完整的web前端课程大纲分享给你
  13. 消防信号总线原理_消防二总线的构成以及工作原理?
  14. 基于ZigBee的城市照明监控系统网关节点的软硬件设计
  15. Python科学绘图 网格色块背景分类图 基于pcolormesh函数
  16. 支付宝 手机页面支付 集成 出现 “系统繁忙,请稍后再试”
  17. Esp32+Dht11+MQTT+Mysql实现测温数据传至数据库
  18. FPGA_硬件电路(自用)
  19. 关于交换数组元素的技术帖
  20. 2018四川省排名前十的卫校名单有哪些?

热门文章

  1. 什么是软件测试架构师?
  2. dns-prefetch,新打开页面预抓取
  3. C#搭建CEF(CEFGLUE) 环境。
  4. pygame加载中文名mp3文件出现error
  5. C#开发微信门户及应用(25)-微信企业号的客户端管理功能
  6. ARM体系结构及内核回顾总结(一)
  7. 吸引子矩阵和鞍点矩阵可以用神经网络二分类吗?
  8. 【控制】《多智能体系统的动力学分析与设计》徐光辉老师-第3章-采样环境下带有领航者的二阶多智能体系统的一致性
  9. 【Paper】2016_Cooperative UAV-UGV modeled by Petri Net Plans specification
  10. 1.4 Padding-深度学习第四课《卷积神经网络》-Stanford吴恩达教授