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

📄 checkboard.cgi

📁 绿叶网络小学校园网-完全适合小学的网站
💻 CGI
字号:
#!/usr/bin/perl

#############################################################
# Ikonboard v2.1
# Copyright 2000 Ikondiscussion.com - All Rights Reserved
# Ikondiscussion is a trademark of Ikondiscussion.com
#
# Software Distributed by: Ikondiscussion.com
# Visit us online at http://www.ikondiscussion.com
# Email us on boards@ikondiscussion.com
#
# All files written by Matthew Mecham
#############################################################

#use CGI::Carp "fatalsToBrowser";          # Output errors to browser
use CGI qw(:standard);                    # Saves loads of work
$CGI::POST_MAX=1024 * 150;                # limit post data
$CGI::DISABLE_UPLOADS = 1;                # Disable uploads

eval {
($0 =~ m,(.*)/[^/]+,)   and unshift (@INC, "$1");
($0 =~ m,(.*)\\[^\\]+,) and unshift (@INC, "$1");
require "$ikondir" . "ikon.lib";          # Require ikonboard ()
require "$ikondir" . "ikonadmin.lib";     # Require Admin func()
require "$ikondir" . "data/progs.cgi";    # Require prog names
require "$ikondir" . "data/boardinfo.cgi";# Require board info
require "$ikondir" . "data/styles.cgi";   # Require styles info
};
if ($@) {
    print header(-charset=>"gb2312"); print start_html(-title=>"ib2000 出错!");
    print "不能够找到文件:$@\n如果您使用的是 Windows 类操作系统,请在每一个程序中更改 require 的设置,填入绝对路径!";
    print end_html; exit;
}

$|++;                                     # Unbuffer the output

#################--- Begin the program ---###################

$thisprog = "checkboard.cgi";

$query = new CGI;

$inforum       = $query -> param("forum");
$inforum       = &cleaninput("$inforum");
$action        = $query -> param("action");
$action        = &cleaninput("$action");


$inmembername = cookie("adminname");
$inpassword   = cookie("adminpass");

print header(-charset=>"gb2312");

&admintitle;

&getmember("$inmembername");
        
        if (($membercode eq "ad") && ($inpassword eq $password) && ($inmembername eq $membername)) {


        if ($action eq "restoreforums") {

        $filetoopen = "$ikondir" . "data/allforums.bak";
        $filetoopen = &stripMETA($filetoopen);
        open(FILE, "$filetoopen");
        flock (FILE, 2) if ($OS_USED eq "Unix");
        @files = <FILE>;
        close(FILE);

        $totalforums = @files;

        $filetomake = "$ikondir" . "data/allforums.cgi";
        $filetoopen = &stripMETA($filetoopen);
        open(FILE, ">$filetomake") or die "无法定位所需文件!";
        flock (FILE, 2) if ($OS_USED eq "Unix");
        foreach (@files) {
            chomp $_;
            print FILE "$_\n";
            }
        close(FILE);

        print qq~
        <tr><td bgcolor=#333333 colspan=3><font face=宋体 color=#FFFFFF>
        <b>欢迎来到 ib2000 论坛管理中心/检查结果</b>
        </td></tr>
        <tr><td bgcolor=#FFFFFF colspan=3><font face=宋体 color=#333333>
        <b>恢复结果:</b><br><br>
        您的所有论坛均已恢复。<br><br>
        您现有 $totalforums 论坛在您的主论坛中。
        </td></tr>
        ~;
        }


        elsif ($action eq "restorelist") {


            $filetoopen = "$ikondir" . "forum$inforum/list.bak";
            $filetoopen = &stripMETA($filetoopen);
            open(FILE, "$filetoopen");
            flock (FILE, 2) if ($OS_USED eq "Unix");
            @files = <FILE>;
            close(FILE);

            $totaltopics = @files;

            $filetomake = "$ikondir" . "forum$inforum/list.cgi";
            $filetoopen = &stripMETA($filetoopen);
            open(FILE, ">$filetomake") or die "无法定位所需文件!";
            flock (FILE, 2) if ($OS_USED eq "Unix");
            foreach (@files) {
                chomp $_;
                print FILE "$_\n";
                }
            close(FILE);

            print qq~
            <tr><td bgcolor=#333333 colspan=3><font face=宋体 color=#FFFFFF>
            <b>欢迎来到 ib2000 论坛管理中心/检查结果</b>
            </td></tr>
            <tr><td bgcolor=#FFFFFF colspan=3><font face=宋体 color=#333333>
            <b>恢复结果:</b><br><br>
            您的“$inforum”论坛的 list.cgi 已经恢复<br><br>
            现有 $totaltopics 主题在此论坛。
            </td></tr>
            ~;
            }

            else {
           

                $filetoopen = "$ikondir" . "data/allforums.cgi";
                $filetoopen = &stripMETA($filetoopen);
                open(FILE, "$filetoopen");
                flock (FILE, 2) if ($OS_USED eq "Unix");
                @files = <FILE>;
                close(FILE);

                $check = @files;
                $check = "failed" unless ($check > 0);

                $filetoopen = "$ikondir" . "data/allforums.bak";
                $backup_file = "true" if (-e $filetoopen);
                
                $allforums = qq~所有论坛数据文件找到</font>~;

                if (($check eq "failed") && ($backup_file eq "true")) {
                    $allforums = qq~<b>警告!所有论坛数据文件已被破坏!</b> - <a href="$thisprog?action=restoreforums">恢复所有论坛数据文件</a>~;
                    }
                    
                if ($backup_file eq "true") {
                    $allforums_backup = qq~所有论坛数据备份文件找到~;
                    }
                    else {
                      $allforums_backup = qq~<b>没有</b>备份数据文件(如果是第一次建立,是正常的)。~;
                      }

                
                foreach (@files) { #s
                    chomp($_);
                    ($tempno, $trash) = split(/\|/,$_);
                    $filetoopen = "$ikondir" . "forum$tempno/list.cgi";
                    $filetoopen = &stripMETA($filetoopen);
                    open(FILE, "$filetoopen");
                    flock (FILE, 2) if ($OS_USED eq "Unix");
                    @test = <FILE>;
                    close(FILE);

                    $filetocheck = "$ikondir" . "forum$tempno/list.bak";

                    if (-e $filetocheck) { 
                      $listback_up = "true"; 
                      }


                    $check = @test;
                    $check = "failed" unless ($check > 0);
  
                    if (($check eq "failed") && ($listback_up eq "true")){
                        $result = "论坛 $tempno 含有错误的 list.cgi 文件 - <a href=\"$thisprog?action=restorelist&forum=$tempno\">从备份中恢复</a>";
                        }
                        else {
                           $result = "论坛 $tempno 测试通过";
                           }
                    push (@results, $result);
                    } #e 

                # Print out the results

                print qq~
                <tr><td bgcolor=#333333 colspan=3><font face=宋体 color=#FFFFFF>
                <b>欢迎来到 ib2000 论坛管理中心/测试结果</b>
                </td></tr>
                <tr><td bgcolor=#FFFFFF colspan=3><font face=宋体 color=#333333>
                <b>检测结果:</b><br><br>
                您的论坛数据检测完毕,没有文件损坏或丢失。<br>
                <font color=#FF0000><b>如果您正在修改论坛,或是正在论坛发言,那么您将得到错误信息。</b>
                <font face=宋体 color=#333333>  
                <br><br>
                <b>检查 allforums.cgi 文件:</b> <br><br>$allforums<br><br></font>
                <font face=宋体 color=#333333>
                <b>检查所有论坛备份文件:</b> <br><br>$allforums_backup</font>
                <hr>
                <font face=宋体 color=#333333>
                <br><b>每个目录下的 list.cgi 文件的检查结果:</b>
                <br><br>
                ~;

                foreach (@results) {
                    chomp $_;
                    print qq($_<br><br>\n);
                    }
                print qq~
                <br><hr><br><i>报告结束</i>
                </td></tr>
                ~;
                } # end if
          

       } # end if admin
       else {
            &adminlogin;
            }


print qq~</table></td></tr></table></td></tr></table></body></html>~;
exit;













⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -