栏目导航
热点推荐
- 修改discuz兼容自己开发的通行证
- Discuz! 6.1插件 安装 方法&技巧
- discuz一些常用SQL语句
- Discuz! 论坛如何添加配置选项
- SupeSite模块参数说明
- Discuz! 6.1.0 边栏、数据调用的
- Discuz! 6.1 防灌水设置
- discuz如何开启主题分类
- Discuz! 6.1论坛搬家成功心得分
阅览排行
Discuz!X1.5 登录机制
www.jz123.cn 2011-03-07 来源: 站长家园 责任编辑(袁袁) 我要投递新闻
发现Discuz 验证用户是否在线的机制 非常有趣, 这里到时难住了我一个之前没怎么接触过Web系统的,唉,搞了半天才发现,Discuz!X 的判断是否在线的机制,不是跟我们普通想象的在数据库中又一个标志位来标识是否在线。
Discuz在数据库中是没有这个标志位的,只有在pre_common_onlinetime和pre_forum_onlinelist中提到在线相关的,不过pre_common_onlinetime是记录每个用户(UID)在线的总时间的,(据说:这个记录在线总时间的方法就是,每十分钟记录一次在线时间,然后累加在这张表中,不过这个任务我一直没有发现,这个好像是NT版本的 不知道PHP是不是也这样)
还有一张表 pre_forum_onlinelist 用来记录当前在线成员列表的,不过这个列表不是当前在线的成员,而是title
Discuz 判断登录是通过Cookie来判断的,我做过实验,如果我把一位已经登录的用户的SID从session表中删除,然后在刷新刚才已经登录的页面,此时这个用户还是在线的状态,从这里可以判断出,不是通过session表中的数据来判断的,当然我也没发现其它的标志是否在线的表。
说明:Discuz 的Cookie 和 server的session 是分开的,相对独立的。
由于第一次接触Web系统,所以还有很多需要学习的!
接下来要努力研究一下Discuz 的Cookie,她到底是什么样的机制!
希望分析过Discuz 的朋友 多多探讨!
上一篇:discuz!board 数据备份出现“未知错误” 下一篇:discuz论坛程序的PHP加密函数原理