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