📄 rebuildall.cgi
字号:
#!/usr/bin/perl
#############################################################
# LeoBoard ver.5000 / LB5000 / 雷傲超级论坛 ver.5000
#
# 版权所有: 雷傲工作室(原蓝宝石软件工作室)
#
# 制作人 : 山鹰糊 (Shining Hu)
# 花无缺 (Ifairy Han)
#
# 主页地址: http://www.CGIer.com/ CGI 编程者之家
# http://www.LeoBoard.com/ 雷傲论坛支持主页
# http://www.leoBBS.com/ 本论坛直通车
#
#############################################################
BEGIN {
$LBPATH = '.';
my $pgm = $0;
$pgm =~s/\\/\//g;
$pgm =~s/^.*\/([^\/]+)$/$1/g;
unless (-e $LBPATH.'/'.$pgm) {
foreach ($0, $ENV{'SCRIPT_FILENAME'}, $ENV{'PATH_TRANSLATED'}) {
s!\\!/!g; s/^(.*)\/[^\/]+$/$1/g;
if (-e $_ . '/' .$pgm) { $LBPATH = $_; last; }
}
}
unshift (@INC, "$LBPATH");
}
use LBCGI;
$LBCGI::POST_MAX=2000;
$LBCGI::DISABLE_UPLOADS = 1;
$LBCGI::HEADERS_ONCE = 1;
require "lbadmin.lib.pl";
require "data/boardinfo.cgi";
require "lb.lib.pl";
require "rebuildlist.pl";
$|++; # Unbuffer the output
#################--- Begin the program ---###################
$thisprog = "rebuildall.cgi";
$query = new LBCGI;
$nextforum = $query -> param('nextforum');
$action = $query -> param("action");
$action = &cleaninput("$action");
$nextforum = 0 if ($nextforum eq "");
$inmembername = $query->cookie("adminname");
$inpassword = $query->cookie("adminpass");
$inmembername =~ s/[\a\f\n\e\0\r\t\`\~\!\@\#\$\%\^\&\*\(\)\+\=\\\{\}\;\'\:\"\,\.\/\<\>\?]//isg;
$inpassword =~ s/[\a\f\n\e\0\r\t\|\@\;\#\{\}\$]//isg;
&getadmincheck;
print header(-charset=>gb2312);
&admintitle;
if ($action eq "process") {
&getmember("$inmembername");
if (($membercode eq "ad") && ($inpassword eq $password) && (lc($inmembername) eq lc($membername))) {
$filetoopen = "$lbdir" . "data/allforums.cgi";
open(FILE, "$filetoopen");
flock(FILE, 1) if ($OS_USED eq "Unix");
@allforums = <FILE>;
close(FILE);
$size=@allforums;
($forumid, $category, $categoryplace, $forumname, $forumdescription, $forummoderator ,$htmlstate ,$idmbcodestate ,$privateforum, $startnewthreads ,$lastposter ,$lastposttime, $threads, $posts, $forumgraphic, $ratings, $misc,$forumpass,$hiddenforum,$indexforum,$teamlogo,$teamurl, $fgwidth, $fgheight, $miscadd3, $miscadd4, $miscad5) = split(/\t/,$allforums[$nextforum]);
my $info = rebuildLIST(-Forum=>"$forumid");
($threadcount,$topiccount) = split (/\|/,$info);
$threadcount = 0 if ($threadcount<0);
$topiccount = 0 if ($topiccount <0);
$line = "$forumid\t$category\t$categoryplace\t$forumname\t$forumdescription\t$forummoderator\t$htmlstate\t$idmbcodestate\t$privateforum\t$startnewthreads\t$lastposter\t$lastposttime\t$threadcount\t$topiccount\t$forumgraphic\t$ratings\t$misc\t$forumpass\t$hiddenforum\t$indexforum\t$teamlogo\t$teamurl\t$fgwidth\t$fgheight\t$miscadd3\t$miscadd4\t$miscad5\t";
$line =~ s/[\a\f\n\e\0\r]//isg;
$allforums[$nextforum] = $line;
open (INFOFILE,">${lbdir}forum$forumid/foruminfo.cgi");
print INFOFILE "$line";
close(INFOFILE);
&winlock($filetoopen) if ($OS_USED eq "Nt");
open(FILE, ">$filetoopen");
flock(FILE, 2) if ($OS_USED eq "Unix");
foreach (@allforums) {
chomp $_;
(my $idtemp, my $no) = split(/\t/,$_);
next if ($idtemp !~ /^[0-9]+$/);
if ($idtemp eq $forumid) { print FILE "$line\n"; }
else { print FILE "$_\n"; }
}
close(FILE);
&winunlock($filetoopen) if ($OS_USED eq "Nt");
$nextforum++;
if ($nextforum > $size){
print qq(
<tr><td bgcolor=#333333" colspan=2><font color=#FFFFFF>
<b>欢迎来到论坛管理中心 / 恢复-重新计算所有论坛</b></td></tr>
<tr><td bgcolor=#EEEEEE valign=middle align=center colspan=2>
<font color=#333333><b>恢复-重新计算所有论坛已经完成!</b></td></tr>
);
} else {
print qq(
<tr><td bgcolor=#333333" colspan=2><font color=#FFFFFF>
<b>欢迎来到论坛管理中心 / 恢复-重新计算所有论坛</b></td></tr>
<tr><td bgcolor=#EEEEEE valign=middle align=center colspan=2>
<font color=#333333><b>恢复-重新计算所有论坛</b></td></tr>
<td bgcolor=#ffffff valign=middle align=left colspan=2>
<font color=black><b><br><br><br>处理中...<br>
主题数:$threadcount<br>
回复数:$topiccount<BR></b><BR><BR>
<a href=$thisprog?action=process&nextforum=$nextforum>如果浏览器没有自动转入,请点击继续。</a><BR>
</td></tr>
<meta http-equiv="refresh" content="2; url=$thisprog?action=process&nextforum=$nextforum">
);
}
}
else {
&adminlogin;
}
}
else {
&getmember("$inmembername");
if (($membercode eq "ad") && ($inpassword eq $password) && (lc($inmembername) eq lc($membername))) {
print qq(
<tr><td bgcolor=#333333" colspan=2><font color=#FFFFFF>
<b>欢迎来到论坛管理中心 / 恢复-重新计算所有论坛</b></td></tr><tr>
<td bgcolor=#EEEEEE valign=middle align=center colspan=2>
<font color=#333333><b>恢复-重新计算所有论坛</b></td></tr>
<form action="$thisprog" method="post">
<input type=hidden name="action" value="process">
<tr><td bgcolor=#FFFFFF valign=middle colspan=2>
<font color=#000000><b>请注意:</b><br>此过程将耗费大量 CPU 时间和系统资源,不到万不得已,不要采用本功能!</td></tr>
<tr><td bgcolor=#EEEEEE valign=middle align=center colspan=2>
<input type=submit name=submit value=提交></td></form></tr></table></td></tr></table>
);
}
else {
&adminlogin;
}
}
print qq~</td></tr></table></body></html>~;
exit;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -