Discuz! 4.0.0 正式版 Bug及解决办法 汇集[最后更新于2006年2月18日]

上一篇 / 下一篇  2006-10-29 23:24:07

查看( 1887 ) / 评论( 24 )
在Freediscuz!的帖子地址:http://www.freediscuz.net/dev/viewthread.php?tid=12645SupeSite/X-Space官方站 gPB/Z w

5Q D_DCk*M;HY}0自己根据Discuz!和Freediscuz!的解答,把这些BUG和解决办法整到一起来了。不知过去的两个补丁补了多少。部分内容我改成简体的了~当时自己收集的时候方便查阅,所以改了SupeSite/X-Space官方站k_&@o"}r `
[最后更新于2006年2月18日]
a'P3ru U z0ce0==================================================================================
+jE Hz6BL8Q2m0原帖地址http://www.discuz.net/viewthread.php?tid=222990SupeSite/X-Space官方站3B&}(B xi9n7?
情况描述:使用干扰码的板块[作者原创],干扰码不起作用。只要是加过分的帖子,只要点击右上方的小手,再出来的帖子内容复制以后就是没有干扰码的。
4z+nG3t4i0解决办法
4o,UAQg v4w0修改:  misc.phpSupeSite/X-Space官方站?1F$B.z~M#@G
查找

CODE:

H ZT9|Q k6Z-e9\0        $post['message'] = discuzcode($post['message'], $post['smileyoff'], $post['bbcodeoff'], $post['htmlon'], $forum['allowsmilies'], $forum['allowbbcode'], $forum['allowimgcode'], $forum['allowhtml']);变成

CODE:SupeSite/X-Space官方站)b-Tuq vT }~ ^6_r/x

        $post['message'] = discuzcode($post['message'], $post['smileyoff'], $post['bbcodeoff'], $post['htmlon'], $forum['allowsmilies'], $forum['allowbbcode'], $forum['allowimgcode'], $forum['allowhtml'], $forum['jammer']);==================================================================================
\yF0p R)a6A{0此条修改可能会发生错误,请暂时不要修改。SupeSite/X-Space官方站8?;A7@Q)Iu
原帖地址http://www.discuz.net/viewthread.php?tid=232791SupeSite/X-Space官方站4ZX H3eXNk b
情况描述:当帖内解析

CODE:SupeSite/X-Space官方站z(_BG3z9_3e

[img]http://www.discuz.net/logging.php?action=logout[/img]这段代码时,访问帖子的人将会退出登录。SupeSite/X-Space官方站6qC)P2u!`r
解决办法
?nHoC;b"mvlO0discuzcode.func.php内
y)S/Q {#H Hv0

CODE:SupeSite/X-Space官方站d!tR.k7uUk

str_replace('submit', '',改为

CODE:SupeSite/X-Space官方站H1su3m$}!Rt

str_replace(array('submit','action=logout'),array('', ''),.
-o;~a7Kxlf dB"a0此条修改可能会发生错误,请暂时不要修改。SupeSite/X-Space官方站&X,[3BLx&~j7tL-Q n
==================================================================================SupeSite/X-Space官方站2v9Bb'e}kSWP
原帖地址http://www.discuz.net/viewthread.php?tid=225563
1MK)f.fT)s2j6^!d0情况描述:"今日发贴"不准确。SupeSite/X-Space官方站ZCut {MJ/d-p
解决办法

QUOTE:SupeSite/X-Space官方站bh|1U2p{u%n

作者:muhanSupeSite/X-Space官方站!C@4DOD} z
修改难度:中SupeSite/X-Space官方站9re!U#t y:s)q R"b
修改文件:include/common.inc.php,  include/forum.fuc.php,  include/post.fuc.php,  topicadmin.php ,index.phpSupeSite/X-Space官方站%W}:} |:k!].n!D#oe
支持论坛:http://www.javawind.com
&r~%T?)AyL Q~0演示论坛:http://www.javawind.com
[k.bjp#B#['Ie0
#wRb$d,C9s c'T0注:只会在每天的0:00第一个打开首页的人才会增加一次数据库查询SupeSite/X-Space官方站tboV([ FY
解决的问题有:
WZ.G X&b3Y)C:s01.准确显示当天"今日发帖",从每天的0:00开始统计.SupeSite/X-Space官方站XI|)e/S'J&T Y]
2.解决删贴后"今日发帖"不更新的情况.
|$`{8p%I'b"rjL m03.解决"今日发帖"会无限累加的情况.
第一步:
8N'sm}LTF0修改include/common.inc.php
MV8V/Rs2`#t%f-Np0找到

CODE:SupeSite/X-Space官方站J Ce/`2Ak5Q1}

function payment($amount, $orderid) {上面添加

CODE:SupeSite/X-Space官方站#M;A9Dh.nFu

//从0:00开始 by muhan  startSupeSite/X-Space官方站j+F2~&R3U3Y0y
list($thisyear,$thismonth,$thisday) = explode(':',gmdate('Y:m:d',$timestamp + $timeoffset * 3600));
Q)EWPc9~0$todaypostcheck = gmmktime(0,0,0,$thismonth,$thisday,$thisyear) - $timeoffset * 3600;  SupeSite/X-Space官方站$r*Q6zKP
//end
第二步:SupeSite/X-Space官方站6k$|O7y1~FTv+cF
修改include/forum.fuc.phpSupeSite/X-Space官方站K2a,{.l\I{h
找到

CODE:

p.}v-T b)Fkr:D \.Y$lK0function forumtodayposts(&$forum) {
J(}!cxu$a Vi(E0        $forum['lastpost'] = explode("\t", $forum['lastpost']);
t/Q`X s1e&m ]c:L0        return $forum['todayposts'] = $GLOBALS['timestamp'] - $forum['lastpost'][2] > 86400 ? 0 : $forum['todayposts'];SupeSite/X-Space官方站*MO3O0` f Yi@I:q&u8t
}
替换成:

CODE:

4q_G'G+h$c'W t*s7i0/*function forumtodayposts(&$forum) {
^j-d,AE(f0        $forum['lastpost'] = explode("\t", $forum['lastpost']);
,E6rW|0|Z0        return $forum['todayposts'] = $GLOBALS['timestamp'] - $forum['lastpost'][2] > 86400 ? 0 : $forum['todayposts'];SupeSite/X-Space官方站)qi~:Ntd B_
}*/SupeSite/X-Space官方站k!Fjt M-Y3_SH
//获得最后发贴时间 by muhanSupeSite/X-Space官方站^ I6h@,T M
function lastposttime(&$forum)        {SupeSite/X-Space官方站wNV wA
        return $forum['lastpost'][2];SupeSite/X-Space官方站X.N&jRN&I.Gv y
        }
:wD3H.bY$grk`L0//end
I*_,x;H$xax*`;U/^-M0SupeSite/X-Space官方站3U8|0j9}&k}:ma"n7b
function forumtodayposts(&$forum) {
$N3]W^(j.b5r0        global $todaypostcheck;SupeSite/X-Space官方站f)fS(b-a'{5ed ~
        return $forum['todayposts'] = $forum['lastpost'][2] < $todaypostcheck ? 0 : $forum['todayposts']; //获得今日贴数SupeSite/X-Space官方站'[ZH)onfy
}
第三步:
YVb{ tP1c*G0修改文件include/post.fuc.phpSupeSite/X-Space官方站PyAh+b$d*^
找到

CODE:SupeSite/X-Space官方站&J)R_l AVe#m

global $forum, $timestamp, $_DCACHE;替换成:

CODE:SupeSite/X-Space官方站]7{bR,u g*Ya2ZX

global $forum, $timestamp, $_DCACHE, $todaypostcheck;找到

CODE:SupeSite/X-Space官方站y&B"B;M2KP

if($forum['lastpost'][2] > $timestamp - gmdate('G', $timestamp + $_DCACHE['settings']['timeoffset'] * 3600) * 3600 - gmdate('i', $timestamp + $_DCACHE['settings']['timeoffset'] * 3600) * 60 - gmdate('s', $timestamp + $_DCACHE['settings']['timeoffset'] * 3600) * 1) {替换成

CODE:SupeSite/X-Space官方站/E J bI0Vbf,i

//if($forum['lastpost'][2] > $timestamp - gmdate('G', $timestamp + $_DCACHE['settings']['timeoffset'] * 3600) * 3600 - gmdate('i', $timestamp + $_DCACHE['settings']['timeoffset'] * 3600) * 60 - gmdate('s', $timestamp + $_DCACHE['settings']['timeoffset'] * 3600) * 1) {
T+x qRk}Ts0                if($forum['lastpost'][2] > $todaypostcheck) {//今日发贴从0:00开始 by muhan
第四步:
f8WZ~6a8y/]:\k0修改文件topicadmin.phpSupeSite/X-Space官方站hn8?-[o2r
找到第一个:

CODE:SupeSite/X-Space官方站(b(Q o3j'ZdE PQz#?0u'N

if($post['dateline'] < $losslessdel) {SupeSite/X-Space官方站5C;mGKRH*GIcA6U
                                        $uidarray[] = $post['authorid'];
#w~\!FBbR)a0                                }
后面添加:

CODE:

d2|2b:G&[v7L0elseif($post['dateline'] > $todaypostcheck){
ZT/xmS$A7^I t0                                        $db->query("UPDATE {$tablepre}forums SET todayposts=todayposts-1 WHERE fid=$fid");//更新今日发贴SupeSite/X-Space官方站`pd)X0wi1L
                                }
第五步:
f-?X L{'?0v0修改index.phpSupeSite/X-Space官方站.`9e ]3P}9v5|.D Z
找到

CODE:

\:[N Z g[:L0$threads = $posts = $todayposts = 0;换行添加

CODE:

H\+j+X4|*]0$lastposttime = $todayposttemp = 0;//最后一贴时间变量 by muhan找到

CODE:SupeSite/X-Space官方站6M.b7l7vtk]ra

if($forum['type'] != 'group') {SupeSite/X-Space官方站E7wJto ~X s;}(^)F
                        $threads += $forum['threads'];SupeSite/X-Space官方站+Rv0z m j wJ)~6^(M
                        $posts += $forum['posts'];
换行添加

CODE:SupeSite/X-Space官方站&\z&^*xkL;nmo5c

                $todayposttemp += $forum['todayposts'];//确定是否归零
XC l TKfi_0$forum['lastpost'] = explode("\t", $forum['lastpost']); //by muhan
/oy?V.Zg\0                        $lastposttime = lastposttime($forum) > $lastposttime ? lastposttime($forum) : $lastposttime;//获得全论坛最后一贴的发布时间 bymuhan
找到

CODE:

M N*{%}Xa0if($categories) {上面添加

CODE:SupeSite/X-Space官方站0O8T!}-N.Y2r

//0:00时执行此次更新
g_$F4VM3?*^TR0if($lastposttime < $todaypostcheck  && $todayposttemp != 0){SupeSite/X-Space官方站 \ B3lr%^b
                $db->query("UPDATE {$tablepre}forums SET todayposts=0 ");//更新今日发贴
&[y3tcdI0        }SupeSite/X-Space官方站1},\!Gg;f|
//end
==================================================================================SupeSite/X-Space官方站 V9h%e"n[ FI`D
原帖地址http://www.freediscuz.net/dev/viewthread.php?tid=12537
.y+W6Kz8|6CM]nk-?J0情况描述:短期禁止访问的用户无法自动解禁。大致看了一下解禁过程,是在 mmeber.php里,member.php?action=groupexpiry ,但禁止访问的用户在 common.inc.php 就被拦截了,无法自动解禁。 SupeSite/X-Space官方站] c;i5E g2Qe { U
解决办法SupeSite/X-Space官方站3v6i8C0T H A;V
在common.inc.php中SupeSite/X-Space官方站 F`&~/BS*qz1_7yjT

CODE:SupeSite/X-Space官方站 jHs(kNZ

if(isset($allowvisit) && $allowvisit == 0) {替换为

CODE:SupeSite/X-Space官方站.knT'o3I(]5[jI

if(isset($allowvisit) && $allowvisit == 0 && !(CURscrīpt == 'member' && $action == 'groupexpiry')) {==================================================================================SupeSite/X-Space官方站8lbP5N+u\H2i
原帖地址http://www.discuz.net/viewthread.php?tid=208436
FhT+v s9Pr5}0情况描述:后台的界面风格编辑了后,好象没有更新缓存。
` RF jL+u0解决办法SupeSite/X-Space官方站P cQ,G!a G
在styles.inc.php中相关位置加入红色字体

CODE:SupeSite/X-Space官方站6C3T,m AT

                if($newname) {
2{*In&M5f)k\t k0                        $db->query("INSERT INTO {$tablepre}styles (name, templateid) VALUES ('$newname', '1')");SupeSite/X-Space官方站y3c[!{U
                        $styleidnew = $db->insert_id();
3t$?1u0nve ~H$p0                        foreach($predefinedvars as $variable) {SupeSite/X-Space官方站M?tj6aKW
SupeSite/X-Space官方站6b9Xb7D6`'t
                                $db->query("INSERT INTO {$tablepre}stylevars (styleid, variable)
0jsM%JOAQ5f0B Gm0                                        VALUES ('$styleidnew', '$variable')");
%c ou&N c0                        }
){,m5t_ ^l]%W0                }SupeSite/X-Space官方站)C C9A1z \.\4D'p
SupeSite/X-Space官方站D:\#T2@2GF
[color=Red]                updatecache('styles');
mmc8X,H k)_)BB0                updatecache('settings');[/color]
Fwr PKf.^Q7W0                cpmsg('styles_edit_succeed', 'admincp.php?action=styles');
;? H;R+aw0
%`W!DIjYXx8}oY0        } elseif(submitcheck('importsubmit')) {
==================================================================================
x,oT8x!f0原帖地址http://www.discuz.net/viewthread.php?tid=234683SupeSite/X-Space官方站,U'~3}5K+i+f_
情况描述SupeSite/X-Space官方站mG"l*P]fWi
“统计”-“管理团队”中,当有分区版主时,点这个分区版主所辖的分区链接会出现:

QUOTE:SupeSite/X-Space官方站4ahL8{MS

指定的论坛不存在,请返回。
KK3d4M5RVp0[ 点击这里返回上一页 ]
解决办法SupeSite/X-Space官方站EgapbHdR
方法一SupeSite/X-Space官方站8x)]*Q Q*k1b)_-CJ
修改:  stats_team.htm
E1R ]8Jc+];X0查找

CODE:SupeSite/X-Space官方站_.s7~boC

<a href="forumdisplay.php?fid=$fid">替换为

CODE:SupeSite/X-Space官方站Hd1Ir6_CzQ MY

<!--{if $forum[type] == 'group'}--><a href="index.php?gid=$fid"><!--{else}--><a href="forumdisplay.php?fid=$fid"><!--{/if}-->完成
~[)n3PoIV"rQgV0SupeSite/X-Space官方站|RBPZG.}*i0{I d#W
方法二SupeSite/X-Space官方站u^xW\-@{
修改:  Forumdisplay.phpSupeSite/X-Space官方站?:E)JW@1q
查找

CODE:

K(qq%ot9kx:D5jE0if(!$forum['fid'] || $forum['type'] == 'group') {替换为

CODE:SupeSite/X-Space官方站 _AORs*Y-M:X*bK

if(!$forum['fid']) {SupeSite/X-Space官方站Q F3H.Ii)dS
        showmessage('forum_nonexistence', NULL, 'HALTED');
`*X)t+yz~ G/H0} elseif($forum['type'] == 'group') {
/\g)]@ o'{!Sz$B$`0        header("Location: {$boardurl}index.php?gid=$fid&sid=$sid");SupeSite/X-Space官方站\ s[V8Y\
}
==================================================================================SupeSite/X-Space官方站JUt+n] OtA
原帖地址http://www.discuz.net/viewthread.php?tid=234683
3M.h Z"_;n7T0情况描述:启用强制输入理由,在其他管理功能必定要输入原因,但评分时就可不输入理由。
&zlY4T#c.AD0解决办法SupeSite/X-Space官方站4G7`!I$qMh%g6q
修改  misc.phpSupeSite/X-Space官方站8\+}JZ9e_J
查找

CODE:SupeSite/X-Space官方站| ~Jdzr:b

$rate = $ratetimes = 0;替换为

CODE:SupeSite/X-Space官方站`4Q7R~_-b-Qr1\

require_once DISCUZ_ROOT.'./include/misc.func.php';
v}M[/z.v0                checkreasonpm();SupeSite/X-Space官方站JkXsw"VAI8D8Yuy ]
                $rate = $ratetimes = 0;
==================================================================================SupeSite/X-Space官方站ZJIw9i
原帖地址http://www.discuz.net/viewthread.php?tid=227761SupeSite/X-Space官方站%MrGtLV7F-| A
情况描述:报告帖子功能少BUGSupeSite/X-Space官方站`-f&i7q7g IIiu9{
解决办法
!~&K&{UT!Xg z4`!F,o0打开 misc.phpSupeSite/X-Space官方站T-[n+w Q2iG5sJ

CODE:SupeSite/X-Space官方站(wqHl0y~D7cW

showmessage('thread_report_disabled');

CODE:SupeSite/X-Space官方站X1wU+b$l0M$sP:Nl

showmessage('thread_report_disable');另外送多一个 HACK 給大家
m#H+u)@~3Rn/T5f0a0这个 HACK 是用来防止会员报告时不打上 "具保理由或实例举证"SupeSite/X-Space官方站/E9XI @)QW?-bC
SupeSite/X-Space官方站FO&`Yr^RD}
打开 misc.php 找

CODE:SupeSite/X-Space官方站ACL^"N

$posturl = "{$boardurl}viewthread.php?tid=$tid".($page || $pid ? "&page=$page#pid$pid" : NULL);在它上面加入

CODE:SupeSite/X-Space官方站:[U:os#a)L

                if(empty($reason) || strlen($reason) < 8) {
/HY g7Y&g,Z+e0                        showmessage('请详细提供您的举报理由或实例举征,谢谢。请請返回。');
D'] Q0Gr+?)_0                }
==================================================================================SupeSite/X-Space官方站CI&H+i7lJQ
原帖地址http://www.discuz.net/viewthread.php?tid=227166SupeSite/X-Space官方站;m!~u5E`l!_
情况描述:有个 用户组 要 3000 - 6000 分,刚好这 会员 test 的积分刚在是 3000 时,当版主或超级版主 编辑用户 testSupeSite/X-Space官方站 ^;m6MI%B KK&p
使用 [禁止发言] 或  [禁止访问] 后,再解禁 test 回正常会员 ( [无] )。这时 test 会员的用户组就会变成空白。
n.}X${II0解决办法SupeSite/X-Space官方站#_r]+q'a|-h/idX K
打开 admin/members.inc.php

CODE:

5c6IEy1\0$query = $db->query("SELECT groupid FROM {$tablepre}usergroups WHERE type='member' AND creditshigher<'$member[credits]' AND creditslower>'$member[credits]'");改为

CODE:

:L3W}t&q0$query = $db->query("SELECT groupid FROM {$tablepre}usergroups WHERE type='member' AND creditshigher<='$member[credits]' AND creditslower>'$member[credits]' LIMIT 1");==================================================================================
A }+L7o W!v,p)M&gM0原帖地址http://www.freediscuz.net/dev/viewthread.php?tid=12578
X3cQ,sU2iEP0情况描述:三个档有 charset 错误。
A}y9v5p0解决办法SupeSite/X-Space官方站v jJ"@X!m4Q)G
将以下文件中:SupeSite/X-Space官方站8uy&QXM$ccg:o
\templates\default\pm_archive_html.htm
J'[-E+\S'x1Q0\templates\default\post_smilies.htmSupeSite/X-Space官方站L1~*N m+z
\templates\default\viewthread_printable.htm

CODE:SupeSite/X-Space官方站1uUL4Z+|V

<meta http-equiv="Content-Type" content="text/html; charset={CHARSET}">语句中的

CODE:SupeSite/X-Space官方站p0jI2w*G f

{CHARSET}改为

CODE:

]tt3Y H*q,ZX:M0$charset==================================================================================
;B7F1a.NM3Fv,K@0原帖地址http://www.freediscuz.net/dev/viewthread.php?tid=12643SupeSite/X-Space官方站^mbj n7[S
情况描述:移动主题可以移动回原来的论坛(浪费 SQL)。这个 BUG 由 D1 - D4 也一直出现, 每次也有人提, 但官方好像还是知的...~
hk*T7Ke0解决办法
Mp#t*jn{$blv0打开 topicadmin.php
i \gA6eNl ?N'_0

CODE:SupeSite/X-Space官方站BZ{YB#q,dr

} elseif($operation == 'move') {在下行加入

CODE:SupeSite/X-Space官方站w5|#IUv U/i8]JT

if($moveto == $fid) {SupeSite/X-Space官方站7l zev}(T
        showmessage('admin_move_invalid');
M'D&vOD*xW4{lTJ0}
# 完 ^^
E.ngdJx0==================================================================================
@2q Z_l8iNc0原帖地址http://www.discuz.net/viewthread.php?tid=233722SupeSite/X-Space官方站 \'_dB0E-M
情况描述:多窗口刷新使在线时间爆增的BUG SupeSite/X-Space官方站s%t)w:do
解决办法
0p3g}v`!C0include/global.func.php

CODE:SupeSite/X-Space官方站3x:Wil7pd'IB

$db->query("UPDATE {$tablepre}onlinetime SET total=total+'$oltimespan', thismonth=".
E@nR8B'|0
/FE/Q%ni%Pt0(gmdate('Yn', $timestamp) == gmdate('Yn', $lastactivity) ? 'thismonth' : 0)."+'$oltimespan'
8Q*LdB WFS j y0
(eK3F$zQea0WHERE uid='$discuz_uid'");
改为

CODE:

0W;OP4fa-kF0$db->query("UPDATE {$tablepre}onlinetime SET total=total+'$oltimespan', thismonth=".SupeSite/X-Space官方站fa5[!pu)A
SupeSite/X-Space官方站jjs6G)bV7SCa
(gmdate('Yn', $timestamp) == gmdate('Yn', $lastactivity) ? 'thismonth' : 0)."+'$oltimespan',
e0o1|.du.LR}wNOQ0
6Xh&s"lM6M^0lastupdate='$timestamp' WHERE uid='$discuz_uid' AND lastupdate<=".($timestamp -
s:rN-Ya5w#L0
S3L?7R$y{n_-M8As0$oltimespan*60), 'UNBUFFERED');

CODE:SupeSite/X-Space官方站\NIVN\w3W

$db->query("REPLACE INTO {$tablepre}onlinetime (uid, thismonth, total)SupeSite/X-Space官方站!|!an R*X-^3a4mb
        VALUES ('$discuz_uid', '$oltimespan', '$oltimespan')");
改为

CODE:SupeSite/X-Space官方站bmc"QH.BdPO |

$db->query("INSERT INTO {$tablepre}onlinetime (uid, thismonth, total, lastupdate)
C8a g2s Bx)iy Z:@ w0        VALUES ('$discuz_uid', '$oltimespan', '$oltimespan', '$timestamp')", 'SILENT');
完成
7Afx)X vWR0==================================================================================SupeSite/X-Space官方站Z#E q5vG ~RVJU2ra

2月18日更新内容SupeSite/X-Space官方站,Ydj~:rs-re

SupeSite/X-Space官方站8k/a?g.SF_ ^
==================================================================================SupeSite/X-Space官方站!L3_ u6pc*U
原帖地址:http://www.freediscuz.net/dev/viewthread.php?tid=12696SupeSite/X-Space官方站Y g*X;kjsKb
情况描述:当开启了 Html 代码 可用 时, 会做成贴文时不能自动换行, 就是说每行不会自动地加入 <br /> 。
lY,@bD@,C0解决办法SupeSite/X-Space官方站%r7y9zSo C
打开 discuzcode.func.phpSupeSite/X-Space官方站F&D8c-ZC0xSz

CODE:SupeSite/X-Space官方站6x5D1J*}4kC L;Fp

return $htmlon || $allowhtml ? $message : nl2br(str_replace(array("\t", '   ', '  '), array('        ', '   ', '  '), $message));改为

CODE:

r0Nkc"N Sv9} K'B0return $htmlon || $allowhtml ? nl2br($message) : nl2br(str_replace(array("\t", '   ', '  '), array('        ', '   ', '  '), $message));完成 ^^SupeSite/X-Space官方站-w0s+xs`K
==================================================================================
@N7?6uV0

结束

1k~:J-MY2C0SupeSite/X-Space官方站:P/y/^!tq Yc!pQ G
==================================================================================SupeSite/X-Space官方站1^/y]%[ P[
SupeSite/X-Space官方站 @Mm W9V%iV+{
[ 本帖最后由 Clwarm 于 2006-2-18 10:08 编辑 ]

TAG:

我来说两句

(可选)

Open Toolbar