返回列表 回复 发帖

对程序版本: LeoBBS X Build041118一点建议(更新时间 2004/11/26)

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1,文件[color=#DC143C]fav.cgi
美化建议和一个小纠正
找到
  1. &#36;topicicon = "<img src=&#36;imagesurl/images/topicnonew.gif width=14 border=0>";
复制代码
更改为
  1. &#36;topicicon = "<img src=&#36;imagesurl/images/&#36;skin/topicnonew.gif width=14 border=0>";
复制代码
找到
  1. elsif (&#36;threadstate eq "pollclosed") { &#36;topicicon = "<img src=&#36;imagesurl/&#36;skin/images/closedb1.gif width=13 border=0>"; }
复制代码
更改为
  1. elsif (&#36;threadstate eq "pollclosed") { &#36;topicicon = "<img src=&#36;imagesurl/images/&#36;skin/closedb1.gif width=13 border=0>"; }
复制代码
感觉发布有点匆忙~  
______________________________________________________________________________
2,文件[color=&#35;DC143C]forumstyles.cgi
美化建议
找到
  1. bgcolor=&#35;333333"
复制代码
更正为
  1. bgcolor=&#35;2159C9
复制代码
可能是LB5000时代替换遗留下来的问题.
______________________________________________________________________________
3,文件[color=&#35;DC143C]messanger.cgi
①合理建议
找到
  1. elsif (&#36;action eq "read")
复制代码
在这个action里查找如下代码(这段代码共有两处,在上面的outread的action里也有,但用在那里是正确的,无须修改):
  1.         if (&#36;inmsg < @[b][color=blue]out[/color][/b]boxmessages - 1)
  2. {
  3. my &#36;[b][color=blue]out[/color][/b]boxdown = &#36;inmsg + 1;
  4. (undef, &#36;nreadstate, undef, &#36;nmessagetitle, undef) = split(/\t/, &#36;[b][color=blue]out[/color][/b]boxmessages[&#36;[b][color=blue]out[/color][/b]boxdown]);
  5. &#36;[b][color=blue]out[/color][/b]boxmsgdown = qq~<a href=&#36;thisprog?action=[b][color=blue]out[/color][/b]read&msg=&#36;[b][color=blue]out[/color][/b]boxdown title="下一条消息: (&#36;readstatus{&#36;nreadstate})\n消息标题: &#36;nmessagetitle">下一条</a>~;
  6. }
  7. if (&#36;inmsg > 0)
  8. {
  9. my &#36;[b][color=blue]out[/color][/b]boxup = &#36;inmsg - 1;
  10. (undef, &#36;preadstate, undef, &#36;pmessagetitle, undef) = split(/\t/, &#36;[b][color=blue]out[/color][/b]boxmessages[&#36;[b][color=blue]out[/color][/b]boxup]);
  11. &#36;[b][color=blue]out[/color][/b]boxmsgup = qq~<a href=&#36;thisprog?action=[b][color=blue]out[/color][/b]read&msg=&#36;[b][color=blue]out[/color][/b]boxup title="上一条消息: (&#36;readstatus{&#36;preadstate})\n消息标题: &#36;pmessagetitle">上一条</a>~;
  12. }
  13. &#36;[b][color=blue]out[/color][/b]boxsplitline = " | " if (&#36;[b][color=blue]out[/color][/b]boxmsgdown ne "" && &#36;[b][color=blue]out[/color][/b]boxmsgup ne "");
  14. if (&#36;[b][color=blue]out[/color][/b]boxmsgdown ne "" || &#36;[b][color=blue]out[/color][/b]boxmsgup ne "")
  15. {
  16. &#36;[b][color=blue]out[/color][/b]boxtempone = "[ ";
  17. &#36;[b][color=blue]out[/color][/b]boxtemptwo = " ]";
复制代码
修改为:
  1.         if (&#36;inmsg < @[b][color=blue]in[/color][/b]boxmessages - 1)
  2. {
  3. my &#36;[b][color=blue]in[/color][/b]boxdown = &#36;inmsg + 1;
  4. (undef, &#36;nreadstate, undef, &#36;nmessagetitle, undef) = split(/\t/, &#36;[b][color=blue]in[/color][/b]boxmessages[&#36;[b][color=blue]in[/color][/b]boxdown]);
  5. &#36;[b][color=blue]in[/color][/b]boxmsgdown = qq~<a href=&#36;thisprog?action=read&msg=&#36;[b][color=blue]in[/color][/b]boxdown title="下一条消息: (&#36;readstatus{&#36;nreadstate})\n消息标题: &#36;nmessagetitle">下一条</a>~;
  6. }
  7. if (&#36;inmsg > 0)
  8. {
  9. my &#36;[b][color=blue]in[/color][/b]boxup = &#36;inmsg - 1;
  10. (undef, &#36;preadstate, undef, &#36;pmessagetitle, undef) = split(/\t/, &#36;[b][color=blue]in[/color][/b]boxmessages[&#36;[b][color=blue]in[/color][/b]boxup]);
  11. &#36;[b][color=blue]in[/color][/b]boxmsgup = qq~<a href=&#36;thisprog?action=read&msg=&#36;[b][color=blue]in[/color][/b]boxup title="上一条消息: (&#36;readstatus{&#36;preadstate})\n消息标题: &#36;pmessagetitle">上一条</a>~;
  12. }
  13. &#36;[b][color=blue]in[/color][/b]boxsplitline = " | " if (&#36;[b][color=blue]in[/color][/b]boxmsgdown ne "" && &#36;[b][color=blue]in[/color][/b]boxmsgup ne "");
  14. if (&#36;[b][color=blue]in[/color][/b]boxmsgdown ne "" || &#36;[b][color=blue]in[/color][/b]boxmsgup ne "")
  15. {
  16. &#36;[b][color=blue]in[/color][/b]boxtempone = "[ ";
  17. &#36;[b][color=blue]in[/color][/b]boxtemptwo = " ]";
复制代码
可能是LB5000时代替换遗留下来的问题.
②合理建议
找到
  1. &#36;messagetitle = &postwordfilter(&#36;messagetitle) if (&#36;dofilter eq "no" || &#36;dofilter eq "all");
复制代码
更正为
  1. &#36;messagetitle = &dofilter(&#36;messagetitle);
复制代码
可能是LB5000时代替换遗留下来的问题.
______________________________________________________________________________
4,严重漏洞!
原因是由于对用户名换码正则过滤不言所造成~!
----------------------------------------
查找 ';~ /&#36;tempinmembername/i'; 于 ';bbs.lib.pl'; :
bbs.lib.pl/255:     &#36;inmembmod = &#36;forummodnamestemp =~ /&#36;tempinmembername/i || ((&#36;membercode eq "cmo" || &#36;membercode eq "mo" || &#36;membercode eq "amo") && (&#36;forummodnamestemp =~ /,全体版主,/ || &#36;forummodnamestemp =~ /,全体斑竹,/)) ? "yes" : "no";
找到 ';~ /&#36;tempinmembername/i'; 1 次。
----------------------------------------
查找 ';~ /&#36;tempinmembername/i'; 于 ';doipbanned.pl'; :
doipbanned.pl/22:            if (&#36;term_idbannedmembers =~ /&#36;tempinmembername/i) { &error(" ID 被禁止&由于你没遵守本站规定!你的 ID (&#36;inmembername) 被禁止!如有疑问,请联系管理员。"); }
找到 ';~ /&#36;tempinmembername/i'; 1 次。
以上两处改为
  1. ~ /\Q&#36;tempinmembername\E/i
复制代码
----------------------------------------
查找 ';~ /\,&#36;inmembername\,/i'; 于 ';bbs.lib.pl'; :
bbs.lib.pl/267:         if (&#36;forummodnamestemp =~ /\,&#36;inmembername\,/i || ((&#36;membercode eq "cmo" || &#36;membercode eq "mo" || &#36;membercode eq "amo") && (&#36;forummodnamestemp =~ /,全体版主,/ || &#36;forummodnamestemp =~ /,全体斑竹,/))) { &#36;inmembmod = "yes"; } else { &#36;inmembmod = "no"; }
找到 ';~ /\,&#36;inmembername\,/i'; 1 次。
----------------------------------------
查找 ';~ /\,&#36;inmembername\,/i'; 于 ';domoderator.pl'; :
domoderator.pl/79:         &#36;inmembmod = "yes" if (&#36;forummodnamestemp =~ /\,&#36;inmembername\,/i || ((&#36;membercode eq "cmo" || &#36;membercode eq "mo" || &#36;membercode eq "amo") && (&#36;forummodnamestemp =~ /,全体版主,/ || &#36;forummodnamestemp =~ /,全体斑竹,/)));
找到 ';~ /\,&#36;inmembername\,/i'; 1 次。
----------------------------------------
查找 ';~ /\,&#36;inmembername\,/i'; 于 ';forums.cgi'; :
forums.cgi/493:     &#36;catlockbuttom = &#36;membercode eq "ad" || &#36;membercode eq "smo" || ",&#36;catemods," =~ /\,&#36;inmembername\,/i ? "<a href=postings.cgi?action=catlocktop&forum=&#36;inforum&topic=&#36;topicid><font color=&#36;titlecolor>区固</font></a>|" : "";
forums.cgi/654:             if (&#36;membercode eq "ad" || &#36;membercode eq "smo" || ",&#36;catemods," =~ /\,&#36;inmembername\,/i) {
找到 ';~ /\,&#36;inmembername\,/i'; 2 次。
----------------------------------------
查找 ';~ /\,&#36;inmembername\,/i'; 于 ';postings.cgi'; :
postings.cgi/857:     if ((&#36;membercode eq "ad" || &#36;membercode eq "smo" || ",&#36;catemods," =~ /\,&#36;inmembername\,/i) && (&#36;inpassword eq &#36;password)) { &#36;cleartoedit = "yes"; }
postings.cgi/942:     if ((&#36;membercode eq "ad" || &#36;membercode eq "smo" || ",&#36;catemods," =~ /\,&#36;inmembername\,/i) && (&#36;inpassword eq &#36;password)) { &#36;cleartoedit = "yes"; }
找到 ';~ /\,&#36;inmembername\,/i'; 2 次。
以上六处改为
  1. ~ /\Q\,&#36;inmembername\,\E/i
复制代码
----------------------------------------
查找 ';=~ /,&#36;membername,/i'; 于 ';view.cgi'; :
view.cgi/206: &#36;inmembmod = &#36;forummodnamestemp =~ /,&#36;membername,/i ? "yes" : "no";
view.cgi/687: &#36;inmembmod = &#36;forummodnamestemp =~ /,&#36;membername,/i ? "yes" : "no";
找到 ';=~ /,&#36;membername,/i'; 2 次。
以上二处改为
  1. ~ /\Q,&#36;membername,\E/i
复制代码
----------------------------------------
查找 ';~ /\,&#36;membername{&#36;membername}\,/i'; 于 ';topic.cgi'; :
topic.cgi/610:     if (&#36;forummodnamestemp =~ /\,&#36;membername{&#36;membername}\,/i) { &#36;inmembmod = "yes"; } else { &#36;inmembmod = "no"; }
找到 ';~ /\,&#36;membername{&#36;membername}\,/i'; 1 次。
以上一处改为
  1. ~ /\Q\,&#36;membername{&#36;membername}\,\E/i
复制代码
----------------------------------------
查找 ';~ /,&#36;inmembername,/i'; 于 ';attachment.cgi'; :
attachment.cgi/83:     &error(';进入论坛&你不允许进入该论坛!';) if (",&#36;allowusers," !~ /,&#36;inmembername,/i && &#36;membercode ne ';ad'; && &#36;pvtdown ne "no");
找到 ';~ /,&#36;inmembername,/i'; 1 次。
----------------------------------------
查找 ';~ /,&#36;inmembername,/i'; 于 ';ebank.cgi'; :
ebank.cgi/346: &#36;output .= qq~<tr><td colspan=2 align=center><a href=setbank.cgi><font color=blue>进入银行管理中心</font></a></td></tr>~ if ((&#36;membercode eq "ad" && &#36;bankadminallow ne "manager") || (&#36;membercode eq "smo" && &#36;bankadminallow eq "all") || ",&#36;bankmanager," =~ /,&#36;inmembername,/i);
找到 ';~ /,&#36;inmembername,/i'; 1 次。
----------------------------------------
查找 ';~ /,&#36;inmembername,/i'; 于 ';editpoll.cgi'; :
editpoll.cgi/102:     &error(';进入论坛&你不允许进入该论坛!';) if (",&#36;allowusers," !~ /,&#36;inmembername,/i && &#36;membercode ne ';ad';);
找到 ';~ /,&#36;inmembername,/i'; 1 次。
----------------------------------------
查找 ';~ /,&#36;inmembername,/i'; 于 ';editpost.cgi'; :
editpost.cgi/144:     &error(';进入论坛&你不允许进入该论坛!';) if (",&#36;allowusers," !~ /,&#36;inmembername,/i && &#36;membercode ne ';ad';);
找到 ';~ /,&#36;inmembername,/i'; 1 次。
----------------------------------------
查找 ';~ /,&#36;inmembername,/i'; 于 ';forumlogs.cgi'; :
forumlogs.cgi/120:     &error(';进入论坛&你不允许进入该论坛!';) if (",&#36;allowusers," !~ /,&#36;inmembername,/i && &#36;membercode ne ';ad';);
找到 ';~ /,&#36;inmembername,/i'; 1 次。
----------------------------------------
查找 ';~ /,&#36;inmembername,/i'; 于 ';forums.cgi'; :
forums.cgi/127:     &error(';进入论坛&你不允许进入该论坛!';) if (",&#36;allowusers," !~ /,&#36;inmembername,/i && &#36;membercode ne ';ad';);
找到 ';~ /,&#36;inmembername,/i'; 1 次。
----------------------------------------
查找 ';~ /,&#36;inmembername,/i'; 于 ';ftp.cgi'; :
ftp.cgi/214: &#36;output .= "\n<table width=&#36;tablewidth align=center><tr><td>  <a href=&#36;thisprog?action=add><font color=&#36;fonthighlight><b>出售新的 FTP 服务</b></font></a></td></tr></table>" if (&#36;membercode eq "ad" || ",&#36;saleusers," =~ /,&#36;inmembername,/i);
ftp.cgi/508: &myerror("权限错误&你没有权利出售 FTP 服务!") unless (&#36;membercode eq "ad" || ",&#36;saleusers," =~ /,&#36;inmembername,/i);
ftp.cgi/549: &myerror("权限错误&你没有权利出售 FTP 服务!") unless (&#36;membercode eq "ad" || ",&#36;saleusers," =~ /,&#36;inmembername,/i);
找到 ';~ /,&#36;inmembername,/i'; 3 次。
----------------------------------------
查找 ';~ /,&#36;inmembername,/i'; 于 ';jinghua.cgi'; :
jinghua.cgi/98:     &error(';进入论坛&你不允许进入该论坛!';) if (",&#36;allowusers," !~ /,&#36;inmembername,/i && &#36;membercode ne ';ad';);
找到 ';~ /,&#36;inmembername,/i'; 1 次。
----------------------------------------
查找 ';~ /,&#36;inmembername,/i'; 于 ';lbfriend.cgi'; :
lbfriend.cgi/102: &error(';进入论坛&你不允许进入该论坛!';) if (",&#36;allowusers," !~ /,&#36;inmembername,/i && &#36;membercode ne ';ad';);
找到 ';~ /,&#36;inmembername,/i'; 1 次。
----------------------------------------
查找 ';~ /,&#36;inmembername,/i'; 于 ';pag.cgi'; :
pag.cgi/93:     &error(';进入论坛&你不允许进入该论坛!';) if (",&#36;allowusers," !~ /,&#36;inmembername,/i && &#36;membercode ne ';ad';);
找到 ';~ /,&#36;inmembername,/i'; 1 次。
----------------------------------------
查找 ';~ /,&#36;inmembername,/i'; 于 ';poll.cgi'; :
poll.cgi/113:     &error(';进入论坛&你不允许进入该论坛!';) if (",&#36;allowusers," !~ /,&#36;inmembername,/i && &#36;membercode ne ';ad';);
找到 ';~ /,&#36;inmembername,/i'; 1 次。
----------------------------------------
查找 ';~ /,&#36;inmembername,/i'; 于 ';post.cgi'; :
post.cgi/160:     &error(';进入论坛&你不允许进入该论坛!';) if (",&#36;allowusers," !~ /,&#36;inmembername,/i && &#36;membercode ne ';ad';);
找到 ';~ /,&#36;inmembername,/i'; 1 次。
----------------------------------------
查找 ';~ /,&#36;inmembername,/i'; 于 ';printpage.cgi'; :
printpage.cgi/99:     &error(';进入论坛&你不允许进入该论坛!';) if (",&#36;allowusers," !~ /,&#36;inmembername,/i && &#36;membercode ne ';ad';);
找到 ';~ /,&#36;inmembername,/i'; 1 次。
----------------------------------------
查找 ';~ /,&#36;inmembername,/i'; 于 ';reply_tree.cgi'; :
reply_tree.cgi/83:     &ERROROUT("你不允许进入该论坛!") if (",&#36;allowusers," !~ /,&#36;inmembername,/i && &#36;membercode ne ';ad';);
找到 ';~ /,&#36;inmembername,/i'; 1 次。
----------------------------------------
查找 ';~ /,&#36;inmembername,/i'; 于 ';setbank.cgi'; :
setbank.cgi/67: if ((&#36;membercode eq "ad" || (&#36;membercode eq "smo" && &#36;bankadminallow eq "all") || ",&#36;bankmanager," =~ /,&#36;inmembername,/i) && (&#36;inpassword eq &#36;password) && (lc(&#36;inmembername) eq lc(&#36;membername)))
找到 ';~ /,&#36;inmembername,/i'; 1 次。
----------------------------------------
查找 ';~ /,&#36;inmembername,/i'; 于 ';topic.cgi'; :
topic.cgi/131:     &error(';进入论坛&你不允许进入该论坛!';) if (",&#36;allowusers," !~ /,&#36;inmembername,/i && &#36;membercode ne ';ad';);
找到 ';~ /,&#36;inmembername,/i'; 1 次。
----------------------------------------
查找 ';~ /,&#36;inmembername,/i'; 于 ';view.cgi'; :
view.cgi/130:     &error(';进入论坛&你不允许进入该论坛!';) if (",&#36;allowusers," !~ /,&#36;inmembername,/i && &#36;membercode ne ';ad';);
找到 ';~ /,&#36;inmembername,/i'; 1 次。
以上十九处改为
  1. ~ /\Q,&#36;inmembername,\E/i
复制代码
补丁完成~! 所有LB5000(包括XP和MX版本),SuperLB以及LeoBBS及时打好补丁!
______________________________________________________________________________
以下是对程序版本: LeoBBS X Build041101一点建议,可能官方未修正~!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1,文件[color=&#35;DC143C]getnameinfo.pl
加入收藏夹意见;
  1.     require "data/membertitles.cgi" if (&#36;mtitlemax eq "" || &#36;mpostmarkmax eq "");
复制代码
后面加上
  1.     opendir (DIRS, "&#36;lbdir");
  2.     my @files = readdir(DIRS);
  3.     closedir (DIRS);
  4.     my @memfavdir = grep(/^memfav/i, @files);
  5.     &#36;memfavdir = &#36;memfavdir[0];
复制代码
  1. &#36;pvmsggraphic{&#36;membername}   = qq~<span style=cursor:hand onClick="javascript:openScript(';messanger.cgi?action=new&touser=&#36;tempmembername&actionto=msg';,600,400)" title="发送一个短消息给&#36;membername{&#36;membername}"><img src=&#36;imagesurl/images/message.gif border=0 width=16 align=absmiddle>消息</span> ~;
复制代码
后面加入:
  1.     &#36;favfile = (-e "&#36;{lbdir}&#36;memfavdir/close/&#36;membername{&#36;membername}.cgi") ? "&#36;{lbdir}&#36;memfavdir/close/&#36;membername{&#36;membername}.cgi" : "&#36;{lbdir}&#36;memfavdir/open/&#36;membername{&#36;membername}.cgi";
  2.     &#36;favgraphic{&#36;membername} = (-e &#36;favfile) ? qq~<a href=fav.cgi?action=show&member=&#36;tempmembername target=_blank title="查看&#36;membername{&#36;membername}的个人收藏"><img src=&#36;imagesurl/images/memfav.gif border=0 width=16 align=absmiddle>收藏</a> ~ : "";
复制代码
  1. \&#36;icqgraphic{"&#36;membername"}      = qq~&#36;icqgraphic{&#36;membername}~;
复制代码
后面加上:
  1. \&#36;favgraphic{"&#36;membername"} = qq~&#36;favgraphic{&#36;membername}~;
复制代码
2,文件[color=&#35;DC143C]topic.cgi
  1. &#36;pvmsggraphic{&#36;membername}&#36;profilegraphic{&#36;membername}
复制代码
后面加上:
  1. &#36;favgraphic{&#36;membername}
复制代码
顺便给个收藏夹小图片
解决看别人的收藏夹,可能不让看也是故意的。
______________________________________________________________________________
文件[color=&#35;DC143C]setbank.cgi
美化意见:
找到[color=&#35;00008B]sub ebankadminlogin
  1. table width=100% cellpadding=6 cellspacing=0>
复制代码
去掉;
并把
  1. <td bgcolor=&#35;333333 colspan=2><font color=&#35;ffffff><b>欢迎来到银行行长办公室</b></font>
复制代码
改为
  1. <td bgcolor=&#35;2159C9 colspan=2><font color=&#35;ffffff><b>欢迎来到银行行长办公室</b></font>
复制代码
并去掉最后一个[color=&#35;00008B]</table>
解决银行版面花而乱的样子
______________________________________________________________________________
文件[color=&#35;DC143C]fav.cgi
美化意见:
找到
  1.     if ((lc(&#36;inmembername) eq lc(&#36;startedby))&&(&#36;nodispown eq "yes")){ &#36;mypost="<img src=&#36;imagesurl/images/&#36;mypost_blogo title=我发表的主题> "}else {&#36;mypost=""};
  2.     &#36;topicicon = "<img src=&#36;imagesurl/images/topicnonew.gif width=14 border=0>";
  3.     if ((&#36;threadposts >= &#36;hottopicmark) && (&#36;forumlastvisit < &#36;lastpostdate) && (&#36;inmembername ne "客人")) { &#36;topicicon = "<img src=&#36;imagesurl/images/topichot3.gif width=14 border=0>"; }
  4.     elsif ((&#36;threadposts >= &#36;hottopicmark) && (&#36;forumlastvisit > &#36;lastpostdate) && (&#36;inmembername ne "客人")) { &#36;topicicon = "<img src=&#36;imagesurl/images/topichotnonew.gif width=14 border=0>"; }
  5.     elsif ((&#36;threadposts <  &#36;hottopicmark) && (&#36;forumlastvisit < &#36;lastpostdate) && (&#36;inmembername ne "客人")) { &#36;topicicon = "<img src=&#36;imagesurl/images/topicnew3.gif width=14 border=0>"; }
  6.     elsif ((&#36;threadposts <  &#36;hottopicmark) && (&#36;forumlastvisit > &#36;lastpostdate) && (&#36;inmembername ne "客人")) { &#36;topicicon = "<img src=&#36;imagesurl/images/topicnonew.gif width=14 border=0>"; }
  7. &#36;forumcolorone=&#36;forumcolortwo=&#36;miscbacktwo if((&#36;lastpostdate > &#36;forumlastvisit) && (&#36;inmembername ne "客人"));
  8.     &#36;threadstate = "poll" if ((&#36;posticon =~/<br>/i)&&(&#36;threadstate eq ""));
复制代码
改为:
  1.     if ((lc(&#36;inmembername) eq lc(&#36;startedby))&&(&#36;nodispown eq "yes")){ &#36;mypost="<img src=&#36;imagesurl/images/&#36;skin/&#36;mypost_blogo title=我发表的主题> "}else {&#36;mypost=""};
  2.     &#36;topicicon = "<img src=&#36;imagesurl/images/&#36;skin/topicnonew.gif width=14 border=0>";
  3.     if ((&#36;threadposts >= &#36;hottopicmark) && (&#36;forumlastvisit < &#36;lastpostdate) && (&#36;inmembername ne "客人")) { &#36;topicicon = "<img src=&#36;imagesurl/images/&#36;skin/topichot3.gif width=14 border=0>"; }
  4.     elsif ((&#36;threadposts >= &#36;hottopicmark) && (&#36;forumlastvisit > &#36;lastpostdate) && (&#36;inmembername ne "客人")) { &#36;topicicon = "<img src=&#36;imagesurl/images/&#36;skin/topichotnonew.gif width=14 border=0>"; }
  5.     elsif ((&#36;threadposts <  &#36;hottopicmark) && (&#36;forumlastvisit < &#36;lastpostdate) && (&#36;inmembername ne "客人")) { &#36;topicicon = "<img src=&#36;imagesurl/images/&#36;skin/topicnew3.gif width=14 border=0>"; }
  6.     elsif ((&#36;threadposts <  &#36;hottopicmark) && (&#36;forumlastvisit > &#36;lastpostdate) && (&#36;inmembername ne "客人")) { &#36;topicicon = "<img src=&#36;imagesurl/images/&#36;skin/topicnonew.gif width=14 border=0>"; }
  7. &#36;forumcolorone=&#36;forumcolortwo=&#36;miscbacktwo if((&#36;lastpostdate > &#36;forumlastvisit) && (&#36;inmembername ne "客人"));
  8.     &#36;threadstate = "poll" if ((&#36;posticon =~/<br>/i)&&(&#36;threadstate eq ""));
复制代码
找到
  1.         if (&#36;threadstate eq "closed") { &#36;topicicon = "<img src=&#36;imagesurl/images/topiclocked0.gif width=14 border=0>"; }
  2.     elsif (&#36;threadstate eq "poll") {
  3.         if (&#36;size >= &#36;hotpollmark) { &#36;topicicon = "<img src=&#36;imagesurl/images/closedbhot.gif width=13 border=0>"; }
  4.                       else { &#36;topicicon = "<img src=&#36;imagesurl/images/closedb.gif width=13 border=0>"; }
  5.     }
  6.     elsif (&#36;threadstate eq "pollclosed") { &#36;topicicon = "<img src=&#36;imagesurl/images/closedb1.gif width=13 border=0>"; }
复制代码
改为
  1.         if (&#36;threadstate eq "closed") { &#36;topicicon = "<img src=&#36;imagesurl/images/&#36;skin/topiclocked3.gif width=14 border=0>"; }
  2.     elsif (&#36;threadstate eq "poll") {
  3.         if (&#36;size >= &#36;hotpollmark) { &#36;topicicon = "<img src=&#36;imagesurl/images/&#36;skin/closedbhot.gif width=13 border=0>"; }
  4.                       else { &#36;topicicon = "<img src=&#36;imagesurl/images/&#36;skin/closedb.gif width=13 border=0>"; }
  5.     }
  6.     elsif (&#36;threadstate eq "pollclosed") { &#36;topicicon = "<img src=&#36;imagesurl/images/&#36;skin/closedb1.gif width=13 border=0>"; }
复制代码
解决收藏夹某些图片的相对路径不符导致图片不能显示。
______________________________________________________________________________
文件[color=&#35;DC143C]topic.cgi
美化意见:
找到
  1. if ((&#36;usejhpoint eq "yes")&&(&#36;jhdata =~ /\_&#36;topicid\_/)) {
  2.     &#36;jhimage = qq~ <img src="&#36;imagesurl/images/&#36;new_JH" align=absmiddle alt=本帖为精华帖子> ~;
  3. }
复制代码
改为:
  1. if ((&#36;usejhpoint eq "yes")&&(&#36;jhdata =~ /\_&#36;topicid\_/)) {
  2.     &#36;jhimage = qq~ <img src="&#36;imagesurl/images/&#36;skin/&#36;new_JH" align=absmiddle alt=本帖为精华帖子> ~;
  3. }
复制代码
解决主题精华帖子某些图片的相对路径不符导致图片不能显示。
______________________________________________________________________________
文件[color=&#35;DC143C]modscard.cgi
一些小的矫正并加上签到率:
找到[color=&#35;00008B]sub top_page{[color]
下面加上
  1. my &#36;total_member = 0;
  2. open (FILE, "&#36;lbdir/data/lbmember.cgi");
  3. while(<FILE>){
  4. my @tmpuserdetail = split (/\t/, &#36;_);
  5. chomp @tmpuserdetail;
  6. next unless(&#36;tmpuserdetail[1] eq "ad" || &#36;tmpuserdetail[1] eq "smo" || &#36;tmpuserdetail[1] eq "cmo" || &#36;tmpuserdetail[1] eq "mo");
  7. &#36;total_member++;
  8. }
  9. chomp @memberdata;
  10. close (FILE);
复制代码
找到[color=&#35;00008B]if(-e &#36;today_log){
下面
  1. open(FILE,&#36;today_log);
  2. &#36;/="";
  3. &#36;get_today_log = <FILE>;
  4. &#36;/="\n";
  5. close(FILE);
  6. chop &#36;get_today_log;
  7. &#36;get_today_log =~s/[\n\r]/\_/g;
  8. &#36;get_today_log =~s/^\_+//;
  9. &#36;get_today_log =~s/\_+&#36;//;
  10. &#36;get_today_log = "\_&#36;get_today_log\_";
  11. &#36;pcard_or_not = 1 if(&#36;get_today_log=~/\_&#36;inmembername\_/i);
  12. &#36;get_today_log_list = &#36;get_today_log;
  13. &#36;get_today_log_list =~s/^\_+//;
  14. &#36;get_today_log_list =~s/(.+?)\_/<option>&#36;1<\/option>/gi;
复制代码
改为
  1. open(FILE,&#36;today_log);
  2. while(my &#36;line = <FILE>){
  3. chomp &#36;line;
  4. (&#36;line,undef) = split(/\*/,&#36;line);
  5. &#36;get_today_log .= &#36;line."_";
  6. &#36;get_today_log_list .= ';<option>';.&#36;line.';</option>';;
  7. &#36;total_pcard++;
  8. }
  9. close(FILE);
  10. chop &#36;get_today_log;
  11. &#36;get_today_log = "\_&#36;get_today_log\_";
  12. &#36;pcard_or_not = 1 if(&#36;get_today_log=~/\_&#36;inmembername\_/i);
复制代码
找到
  1. &#36;get_today_log_list.=qq~<option>&#36;inmembername</option>~;
复制代码
下面加上:
[color=&#35;00008B]sub top_page{
紧接着在下面,注意在}外加上
  1. &#36;total_member = 1 unless(&#36;total_member);
  2. &#36;pcard_pc = sprintf("%.2f",(&#36;total_pcard/&#36;total_member)*100);
复制代码
找到(注意:一共两处)
  1. <font color="&#36;fontcolormisc">日期:<i>&#36;today_date<i>
复制代码
接着后面加上
  1.   签到率:<i>&#36;pcard_pc%</i>
复制代码
找到
  1. if ((&#36;userdetail[9]) && (&#36;userdetail[9] =~ /^[0-9]+&#36;/)) {
  2. &#36;oicqgraphic = qq~<a href=http://search.tencent.com/cgi-bin/friend/user_show_info?ln=&#36;userdetail[9] target=_blank title="查看 QQ:&#36;oicqnumber的资料"><img src=&#36;imagesurl/images/oicq.gif border=0 width=16 align=absmiddle>QQ</a>~;
  3. }
  4. if ((&#36;userdetail[10]) && (&#36;userdetail[10] =~ /^[0-9]+&#36;/)) {
  5. &#36;icqgraphic = qq~<span style="cursor:hand" onClick="javascript:openScript(';misc.cgi?action=icq&UIN=&#36;userdetail[10]';,450,300)" title="给 ICQ:&#36;icqnumber 发个消息"><img src=&#36;imagesurl/images/icq.gif border=0 width=16 align=absmiddle>ICQ</span>~;
  6. }
复制代码
改为
  1. if ((&#36;userdetail[9]) && (&#36;userdetail[9] =~ /^[0-9]+&#36;/)) {
  2. &#36;oicqgraphic = qq~<a href=http://search.tencent.com/cgi-bin/friend/user_show_info?ln=&#36;userdetail[9] target=_blank title="查看 QQ:&#36;userdetail[9]的资料"><img src=&#36;imagesurl/images/oicq.gif border=0 width=16 align=absmiddle>QQ</a>~;
  3. }
  4. if ((&#36;userdetail[10]) && (&#36;userdetail[10] =~ /^[0-9]+&#36;/)) {
  5. &#36;icqgraphic = qq~<span style="cursor:hand" onClick="javascript:openScript(';misc.cgi?action=icq&UIN=&#36;userdetail[10]';,450,300)" title="给 ICQ:&#36;userdetail[10] 发个消息"><img src=&#36;imagesurl/images/icq.gif border=0 width=16 align=absmiddle>ICQ</span>~;
  6. }
复制代码
解决查看签到斑竹的QQtitle仍然显示是自己的QQ,并加上了签到率,让坛主或者说“一把手”心里有个底。Ps:最好是能够在loginout.cgi加上一个自动签到标记。
______________________________________________________________________________
文件[color=&#35;DC143C]bbs.lib.pl
1,合理性建议:
在[color=&#35;00008B]sub title {找到
  1. if (&#36;forumgraphic) {
  2.     (&#36;fgwidth,&#36;fgheight) = split(/\|/,&#36;fgwidth);
  3.     if (&#36;forumgraphic =~ /\.swf&#36;/i) {&#36;forumgraphicoutput = qq~<PARAM NAME=PLAY VALUE=TRUE><PARAM NAME=LOOP VALUE=TRUE><PARAM NAME=QUALITY VALUE=HIGH><embed src=&#36;imagesurl/myimages/&#36;forumgraphic quality=high width=&#36;fgwidth height=&#36;fgheight pluginspage="http:\/\/www.macromedia.com\/shockwave\/download\/index.cgi?P1_Prod_Version=ShockwaveFlash" type="application\/x-shockwave-flash"><\/embed>~}
  4.         else {&#36;forumgraphicoutput = qq~<a href=forums.cgi?forum=&#36;inforum><img src=&#36;imagesurl/myimages/&#36;forumgraphic border=0 height=60></a>~};
  5. } else {
  6.     if (&#36;boardlogo =~ /\.swf&#36;/i) {&#36;forumgraphicoutput = qq~<PARAM NAME=PLAY VALUE=TRUE><PARAM NAME=LOOP VALUE=TRUE><PARAM NAME=QUALITY VALUE=HIGH><embed src=&#36;imagesurl/myimages/&#36;boardlogo quality=high width=&#36;boardlogow height=&#36;boardlogoh pluginspage="http:\/\/www.macromedia.com\/shockwave\/download\/index.cgi?P1_Prod_Version=ShockwaveFlash" type="application\/x-shockwave-flash"><\/embed>~}
  7.         else {&#36;forumgraphicoutput = qq~<a href=forums.cgi?forum=&#36;inforum><img src=&#36;imagesurl/myimages/&#36;boardlogo border=0 height=60></a>~};
  8. }
复制代码
改为:
  1. if (&#36;forumgraphic) {
  2.     (&#36;fgwidth,&#36;fgheight) = split(/\|/,&#36;fgwidth);
  3.     if (&#36;forumgraphic =~ /\.swf&#36;/i) {&#36;forumgraphicoutput = qq~<PARAM NAME=PLAY VALUE=TRUE><PARAM NAME=LOOP VALUE=TRUE><PARAM NAME=QUALITY VALUE=HIGH><embed src=&#36;imagesurl/myimages/&#36;forumgraphic quality=high width=&#36;fgwidth height=&#36;fgheight pluginspage="http:\/\/www.macromedia.com\/shockwave\/download\/index.cgi?P1_Prod_Version=ShockwaveFlash" type="application\/x-shockwave-flash"><\/embed>~}
  4.         else {&#36;forumgraphicoutput = qq~<a href=forums.cgi?forum=&#36;inforum><img src=&#36;imagesurl/myimages/&#36;forumgraphic border=0 height=&#36;fgheight></a>~};
  5. } else {
  6.     if (&#36;boardlogo =~ /\.swf&#36;/i) {&#36;forumgraphicoutput = qq~<PARAM NAME=PLAY VALUE=TRUE><PARAM NAME=LOOP VALUE=TRUE><PARAM NAME=QUALITY VALUE=HIGH><embed src=&#36;imagesurl/myimages/&#36;boardlogo quality=high width=&#36;boardlogow height=&#36;boardlogoh pluginspage="http:\/\/www.macromedia.com\/shockwave\/download\/index.cgi?P1_Prod_Version=ShockwaveFlash" type="application\/x-shockwave-flash"><\/embed>~}
  7.         else {&#36;forumgraphicoutput = qq~<a href=forums.cgi?forum=&#36;inforum><img src=&#36;imagesurl/myimages/&#36;boardlogo border=0 height=&#36;fgheight></a>~};
  8. }
复制代码
解决分论坛的Logo大小由自己设定。
2,合理性建议:
在[color=&#35;00008B]sub whosonline {找到
  1.                 &#36;fromwhere = "未知" if (length(&#36;fromwhere) > 40);
  2.                 &#36;saveosinfo = "未知" if (length(&#36;saveosinfo) > 15);
  3.                 &#36;savebrowseinfo = "未知" if (length(&#36;savebrowseinfo) > 28);
复制代码
改为:
  1.                 &#36;fromwhere = "未知" if (length(&#36;fromwhere) > 50);
  2.                 &#36;saveosinfo = "未知" if (length(&#36;saveosinfo) > 20);
  3.                 &#36;savebrowseinfo = "未知" if (length(&#36;savebrowseinfo) > 30);
复制代码
解决一些长地址范围导致未知的问题。可能有些问题看复杂了,我把[color=&#35;DC143C]fastlogin.cgi也加上了IP,因为怎么引用,[color=&#35;DC143C]bbs.lib.pl中的[color=&#35;00008B]whosonline函数对[color=&#35;DC143C]fastlogin.cgi的[color=&#35;00008B]&#36;trueipaddress无法识别,于是我在[color=&#35;DC143C]fastlogin.cgi开始加上了一段
  1. my &#36;ipaddress  = &#36;ENV{';REMOTE_ADDR';};
  2. &#36;trueipaddress = &#36;ENV{';HTTP_X_FORWARDED_FOR';};
  3. &#36;trueipaddress = &#36;ipaddress if (&#36;trueipaddress eq "" || &#36;trueipaddress eq "unknown" || &#36;trueipaddress =~ m/^192\.168\./ || &#36;trueipaddress =~ m/^10\./);
  4. my &#36;trueipaddress1 = &#36;ENV{';HTTP_CLIENT_IP';};
  5. &#36;trueipaddress = &#36;trueipaddress1 if (&#36;trueipaddress1 ne "" && &#36;trueipaddress1 ne "unknown" && &#36;trueipaddress1 !~ m/^192\.168\./ && &#36;trueipaddress1 !~ m/^10\./);
复制代码
也许根本不需加,但是我怎么测试也不行,暂时加上为妙~~ :)
______________________________________________________________________________
文件[color=&#35;DC143C]messanger.cgi
1,小缺陷:
在[color=&#35;00008B]elsif (&#36;action eq "read")找到
  1.        if (&#36;inmsg < @outboxmessages - 1)
  2. {
  3. my &#36;outboxdown = &#36;inmsg + 1;
  4. (undef, &#36;nreadstate, undef, &#36;nmessagetitle, undef) = split(/\t/, &#36;outboxmessages[&#36;outboxdown]);
  5. &#36;outboxmsgdown = qq~<a href=&#36;thisprog?action=outread&msg=&#36;outboxdown title="下一封訊息: (&#36;readstatus{&#36;nreadstate})\n訊息標題: &#36;nmessagetitle">下一封</a>~;
  6. }
  7. if (&#36;inmsg > 0)
  8. {
  9. my &#36;outboxup = &#36;inmsg - 1;
  10. (undef, &#36;preadstate, undef, &#36;pmessagetitle, undef) = split(/\t/, &#36;outboxmessages[&#36;outboxup]);
  11. &#36;outboxmsgup = qq~<a href=&#36;thisprog?action=outread&msg=&#36;outboxup title="上一封訊息: (&#36;readstatus{&#36;preadstate})\n訊息標題: &#36;pmessagetitle">上一封</a>~;
  12. }
  13. &#36;outboxsplitline = " | " if (&#36;outboxmsgdown ne "" && &#36;outboxmsgup ne "");
  14. if (&#36;outboxmsgdown ne "" || &#36;outboxmsgup ne "")
  15. {
  16. &#36;outboxtempone = "[ ";
  17. &#36;outboxtemptwo = " ]";
  18. }
复制代码
改为:
  1.         if (&#36;inmsg < @inboxmessages - 1)
  2. {
  3. my &#36;inboxdown = &#36;inmsg + 1;
  4. (undef, &#36;nreadstate, undef, &#36;nmessagetitle, undef) = split(/\t/, &#36;inboxmessages[&#36;outboxdown]);
  5. &#36;inboxmsgdown = qq~<a href=&#36;thisprog?action=read&msg=&#36;inboxdown title="下一条消息: (&#36;readstatus{&#36;nreadstate})\n消息标题: &#36;nmessagetitle">下一条</a>~;
  6. }
  7. if (&#36;inmsg > 0)
  8. {
  9. my &#36;inboxup = &#36;inmsg - 1;
  10. (undef, &#36;preadstate, undef, &#36;pmessagetitle, undef) = split(/\t/, &#36;inboxmessages[&#36;outboxup]);
  11. &#36;inboxmsgup = qq~<a href=&#36;thisprog?action=read&msg=&#36;inboxup title="上一条消息: (&#36;readstatus{&#36;preadstate})\n消息标题: &#36;pmessagetitle">上一条</a>~;
  12. }
  13. &#36;inboxsplitline = " | " if (&#36;inboxmsgdown ne "" && &#36;inboxmsgup ne "");
  14. if (&#36;inboxmsgdown ne "" || &#36;inboxmsgup ne "")
  15. {
  16. &#36;inboxtempone = "[ ";
  17. &#36;inboxtemptwo = " ]";
  18. }
复制代码
解决收件箱上翻下翻页面。[color=&#35;990000]tsefai建议.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

                     我是一个呼吸着现在的空气而生活在过去的人
               这样的注定孤独,孤独的身处闹市却犹如置身于荒漠
                                     我已习惯了孤独,爱上孤独
                                 他让我看清了自我,还原了自我
                             让我再静静的沉思中得到快乐和满足
                                   再孤独的世界里我一遍又一遍
                                   不厌其烦的改写着自己的过去
                                             延伸到现在与未来
                                       然而那只是泡沫般的美梦
                                 产生的时刻又伴随着破灭的到来
                         在灰飞烟灭的瞬间我看到的是过程的美丽
                                      而不是结果的悲哀。。。
返回列表