⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rebuildall.cgi

📁 一个linux论坛
💻 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 + -