Discuz!X1.5 登录机制

jackxiang 2011-5-1 08:20 | |
  发现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 的朋友 多多探讨!

参考:
http://www.mzlhappy.com/72.html
http://www.discuz.net/thread-2135200-1-1.html


请问体哥:如何设置延长用户在线时间?以前我的老论坛可以设置用户在线最高时间。比如:180分钟,用户只要没有退出,自行离开论坛后还是显示他在线!!DZ7有办法设置或者修改代码吗?谢谢!
在线时间设定的太短,稍微间隔下就会自动下线,感觉不是很好,能否改进呢?
后台 -- 全局 -- 优化设置 -- 服务器优化,在线时间保持时间:

作者:jackxiang@向东博客 专注WEB应用 构架之美 --- 构架之美,在于尽态极妍 | 应用之美,在于药到病除
地址:http://jackxiang.com/post/4268/
版权所有。转载时必须以链接形式注明作者和原始出处及本声明!


最后编辑: jackxiang 编辑于2011-5-1 08:32
评论列表
2011-5-2 22:12 | wang
期待你给个合适的答案。 未来继续。
分页: 1/1 第一页 1 最后页
发表评论

昵称

网址

电邮

打开HTML 打开UBB 打开表情 隐藏 记住我 [登入] [注册]