Discuz!官方免费开源建站系统

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

广场首页在线列表一个用户出现多次【解决方案】

[复制链接]
lidq.jingwu 发表于 2010-5-26 10:03:24 | 显示全部楼层 |阅读模式
打开 source/function/function_core.php文件,找到函数,updatesession:
  1. function updatesession($force = false) {

  2.         global $_G;
  3.         static $updated = false;
  4.         if(!$updated) {
  5.                 $discuz = & discuz_core::instance();
  6.                 foreach($discuz->session->var as $k => $v) {
  7.                         if(isset($_G['member'][$k]) && $k != 'lastactivity') {
  8.                                 $discuz->session->set($k, $_G['member'][$k]);
  9.                         }
  10.                 }

  11.                 foreach($_G['action'] as $k => $v) {
  12.                         $discuz->session->set($k, $v);
  13.                 }

  14.                 $discuz->session->update();

  15.                 $updated = true;
  16.         }
  17.         return $updated;
  18. }
复制代码
将其改为:
  1. function updatesession($force = false) {

  2.         global $_G;
  3.         static $updated = false;
  4.         if(!$updated) {
  5.                 $discuz = & discuz_core::instance();
  6.                 foreach($discuz->session->var as $k => $v) {
  7.                         if(isset($_G['member'][$k]) && $k != 'lastactivity') {
  8.                                 $discuz->session->set($k, $_G['member'][$k]);
  9.                         }
  10.                 }

  11.                 foreach($_G['action'] as $k => $v) {
  12.                         $discuz->session->set($k, $v);
  13.                 }
  14.         //从 pre_common_session 中查询是否有相同UID的用户,有说明是同一用户在不同的地方登录,不再更新 session
  15.                 $t_session = DB::fetch_first("SELECT * FROM ".DB::table('common_session')." WHERE uid='".$_G['uid']."'");
  16.                 if($t_session['sid']){
  17.                         //数据库中有记录,不更新 SESSION
  18.                 } else {
  19.                         $discuz->session->update();
  20.                         $updated = true;
  21.                 }

  22.         }
  23.         return $updated;
  24. }
复制代码
这个问题是 pre_common_session 表中有多个记录导致的
立方战士 发表于 2010-5-26 11:46:10 | 显示全部楼层
不错,有需要的朋友可要看了。
回复

使用道具 举报

ico825 发表于 2010-5-26 15:13:07 | 显示全部楼层
打开 source/function/function_core.php文件,找到函数,updatesession:将其改为:这个问题是 pre_common ...
lidq.jingwu 发表于 2010-5-26 10:03



會導致驗證碼在輸入時總提示錯誤
回复

使用道具 举报

华藏 发表于 2010-5-27 15:58:36 | 显示全部楼层
出现过这个问题,不过不算什么,等新版本覆盖了...
回复

使用道具 举报

yinjie8888 发表于 2010-6-11 17:57:48 | 显示全部楼层
回复

使用道具 举报

dongxin8 发表于 2010-6-11 22:40:02 | 显示全部楼层
刚好我的也要```
回复

使用道具 举报

无可奉告 发表于 2010-6-12 15:38:15 | 显示全部楼层
用了之后只显示在线会员了  游客一个都没了
回复

使用道具 举报

shiwangfu 发表于 2010-6-27 09:48:41 | 显示全部楼层
问题出来了···游客始终是一个人
回复

使用道具 举报

skyaaron 发表于 2010-7-5 09:42:48 | 显示全部楼层
支持一下,改天试试
回复

使用道具 举报

詮釋悲傷丶 发表于 2010-7-5 17:32:50 | 显示全部楼层
试试
我的貌似是今天打了很多补丁造成滴
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2024-9-28 05:04 , Processed in 0.199814 second(s), 16 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表