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

📄 foruminit.cgi

📁 一个linux论坛
💻 CGI
📖 第 1 页 / 共 3 页
字号:
        
        foreach $_ (@allforums) {
            chomp $_;
            (my $forumid, my $category, my $categoryplace, my $forumname, my $forumdescription,my $no) = split(/\t/,$_);
            next if (($forumid eq "")||($forumid !~ /^[0-9]+$/)||($category eq "")||($categoryplace eq "")||($forumname eq "")||($forumdescription eq ""));
            $dirtomake = "$lbdir" . "forum$forumid";
            mkdir ("$dirtomake", 0777) if (!(-e "$dirtomake"));
            chmod (0777,"$dirtomake");
	    &changemod("${lbdir}forum$forumid");
	}
    }
    print qq~<tr>
<td bgcolor=#FFFFFF align=center colspan=2>
<font color=#990000><b>论坛帖子目录和数据文件属性初始化完成!</b><p>
<font color=#333333>请立即测试论坛数据是否已经正常,如果还不正常,请参照论坛的属性说明文档用 FTP 软件自行设置!!</font>
</td></tr>
~;
}

sub changemod {
    my $dirname =shift;
    opendir (DIR, "$dirname");
    my @dirdata = readdir(DIR);
    closedir (DIR);
    foreach (@dirdata) {
    	next if (($_ eq ".")||($_ eq ".."));
        chmod (0666, $_);
    }
    return;
}

sub docount {

    opendir (DIR, "${lbdir}$memdir/old"); 
    @filedata = readdir(DIR);
    closedir (DIR);
    @countvar = grep(/\.cgi$/i,@filedata);
    $newtotalmembers = @countvar;

        require "$lbdir" . "data/boardstats.cgi";
        $filetomake = "$lbdir" . "data/boardstats.cgi";
        
        &winlock($filetomake) if ($OS_USED eq "Nt");
        open(FILE, ">$filetomake");
        flock(FILE, 2) if ($OS_USED eq "Unix");
        print FILE "\$lastregisteredmember = \'$lastregisteredmember\'\;\n";
        print FILE "\$totalmembers = \'$newtotalmembers\'\;\n";
        print FILE "\$totalthreads = \'$totalthreads\'\;\n";
        print FILE "\$totalposts = \'$totalposts\'\;\n";
        print FILE "\n1\;";
        close (FILE);
        &winunlock($filetomake) if ($OS_USED eq "Nt");
    
        print qq~
        <tr>
        <td bgcolor=#FFFFFF align=center colspan=2>
        <font color=#990000>
                    
        <b>计算用户总数</b><p>
                    
        <font color=#333333>当前共有 $newtotalmembers 个注册用户,数据已经更新!</font>
                    
        </td></tr>
         ~;

}

sub dogetold {

    chmod (0777,"${lbdir}$memdir");
    mkdir ("${lbdir}$memdir/old", 0777) if (!(-e "${lbdir}$memdir/old"));

    opendir (DIR, "${lbdir}$memdir"); 
    @filedata = readdir(DIR);
    closedir (DIR);
    @countvar = grep(/\.cgi$/i,@filedata);
    
    open(FILE,">${lbdir}data/allname.cgi");
    foreach (@countvar) {
        print FILE "$_\n";
    }
    $totaluserdata = @countvar;

        print qq~
        <tr>
        <td bgcolor=#FFFFFF align=center colspan=2>
        <font color=#990000>
                    
        <b>注册用户整理</b><br>
                    
        <font color=#333333><B>当前共有 $totaluserdata 个注册用户需要整理,准备工作已经完成。</b><BR><BR><BR>
	<form action="foruminit.cgi" method=get>
        <input type=hidden name="action" value="dogetoldnext">输入每次进行整理的用户数 
        <input type=hidden name="beginone" value=0>
        <input type=text name="noofone" size=3 maxlength=3 value=300>
        <input type=submit value="开始整理">
        </form>
	为了减少资源占用,请输入每次进行排名的用户数,默认 300,<BR>一般不要超过 600,如果发现进行排名无法正常完成,请尽量减少这个数目,延长排名时间。
	<BR><BR>

        </td></tr>
         ~;
} # end routine

sub dogetoldnext {

    open(FILE,"${lbdir}data/allname.cgi");
    @allname = <FILE>;
    close(FILE);
    $allnamenum = @allname;
    $currenttime = time;
    
    if ($beginone < $allnamenum) {
        $lastone = $beginone + $noofone;
        $lastone = $allnamenum if ($lastone > $allnamenum);

	for ($i = $beginone; $i < $lastone; $i ++) {
	    $memberfile = $allname[$i];
	    chomp $memberfile;
	    $usrfileopen = "${lbdir}$memdir/$memberfile";
	    open (FILE, "$usrfileopen");
	    flock (FILE, 1) if ($OS_USED eq "Unix");
	    $line = <FILE>;
	    close (FILE);
	    chomp $line;
	    @memberdaten = split(/\t/,$line);
	    $lastgone = $memberdaten[26] + 6*3600*24;
	    if ($lastgone <= $currenttime) {
	    	unlink ("${lbdir}$memdir/$memberfile");
	    }
	    open(FILE,">${lbdir}$memdir/old/$memberfile");
	    print FILE "$line\n";
	    close(FILE);
	} 

        print qq~
        <tr>
        <td bgcolor=#FFFFFF align=center colspan=2>
        <font color=#990000>
        <b>用户整理</b><p>
        <font color=#333333><B>当前共有 $allnamenum 个注册用户需要整理,已经进行整理了 $lastone 个用户。。。</b><BR><BR><BR>
        <font color=#333333>如果无法自动开始下 $noofone 个用户的整理,请点击下面的链接继续<p>
        >> <a href="$thisprog?action=dogetoldnext&beginone=$lastone&noofone=$noofone">继续进行用户整理</a> <<
	<meta http-equiv="refresh" content="2; url=$thisprog?action=dogetoldnext&beginone=$lastone&noofone=$noofone">
	<BR><BR>

        </td></tr>
         ~;
     }
     else {

    opendir (DIR, "${lbdir}$memdir"); 
    @filedata = readdir(DIR);
    closedir (DIR);
    @countvar = grep(/\.cgi$/i,@filedata);
    $totaluserdata = @countvar;
    
    unlink ("${lbdir}data/allname.cgi");

        print qq~
        <tr>
        <td bgcolor=#FFFFFF align=center colspan=2>
        <font color=#990000>
                    
        <b>用户整理</b><p>
                    
        <font color=#333333>用户整理已经结束,目前常用用户共 $totaluserdata 名!<BR><BR>
        </td></tr>
         ~;
     }

}

sub dotop {

    opendir (DIR, "${lbdir}$memdir/old"); 
    @filedata = readdir(DIR);
    closedir (DIR);
    @countvar = grep(/\.cgi$/i,@filedata);
    $totaluserdata = @countvar;
    
    open(FILE,">${lbdir}$backupdir/allname.cgi");
    foreach (@countvar) {
        print FILE "$_\n";
    }
    close(FILE);


        print qq~
        <tr>
        <td bgcolor=#FFFFFF align=center colspan=2>
        <font color=#990000>
                    
        <b>用户排名初始化</b><br>
                    
        <font color=#333333><B>当前共有 $totaluserdata 个注册用户,准备工作已经完成。</b><BR><BR><BR>
	<form action="foruminit.cgi" method=get>
        <input type=hidden name="action" value="uptopnext">输入每次进行排名的用户数 
        <input type=hidden name="beginone" value=0>
        <input type=text name="noofone" size=3 maxlength=3 value=300>
        <input type=submit value="开始排名">
        </form>
	为了减少资源占用,请输入每次进行排名的用户数,默认 300,<BR>一般不要超过 600,如果发现进行排名无法正常完成,请尽量减少这个数目,延长排名时间。
	<BR><BR>

        </td></tr>
         ~;
} # end routine

sub dotopnext {

    $filename = "alluser.pl";
    open(FILE,"${lbdir}$backupdir/allname.cgi");
    @allname = <FILE>;
    close(FILE);
    $allnamenum = @allname;
    if ($beginone < $allnamenum) {
        $lastone = $beginone + $noofone;
        $lastone = $allnamenum if ($lastone > $allnamenum);

        if ($beginone == 0) {
            unlink ("${lbdir}data/lbmember.cgi")  ;
            unlink ("${lbdir}data/lbmember0.cgi")  ;
            unlink ("${lbdir}data/lbmember1.cgi") ;
            unlink ("${lbdir}data/lbmember2.cgi") ;
            unlink ("${lbdir}data/lbmember3.cgi") ;
            unlink ("${lbdir}data/lbmember4.cgi") ;
        }

	open  (MEMFILE, ">>${lbdir}data/lbmember.cgi");
	flock (MEMFILE, 2) if ($OS_USED eq "Unix");
	open  (MEMFILE0, ">>${lbdir}data/lbmember0.cgi");
	flock (MEMFILE0, 2) if ($OS_USED eq "Unix");
	open  (MEMFILE1, ">>${lbdir}data/lbmember1.cgi");
	flock (MEMFILE1, 2) if ($OS_USED eq "Unix");
	open  (MEMFILE2, ">>${lbdir}data/lbmember2.cgi");
	flock (MEMFILE2, 2) if ($OS_USED eq "Unix");
	open  (MEMFILE3, ">>${lbdir}data/lbmember3.cgi");
	flock (MEMFILE3, 2) if ($OS_USED eq "Unix");
	open  (MEMFILE4, ">>${lbdir}data/lbmember4.cgi");
	flock (MEMFILE4, 2) if ($OS_USED eq "Unix");

	for ($i = $beginone; $i < $lastone; $i ++) {
	    $memberfile = $allname[$i];
	    my $usrfileopen = "${lbdir}$memdir/$memberfile";
	    $usrfileopen = "${lbdir}$memdir/old/$memberfile" if (!(-e $usrfileopen));
	    open (FILE, "$usrfileopen");
	    flock (FILE, 1) if ($OS_USED eq "Unix");
	    $line = <FILE>;
	    close (FILE);
	    chomp $line;
	    @memberdaten = split(/\t/,$line);
	    $username =$memberdaten[0];   
	    $userad=$memberdaten[3];
	    $anzahl = $memberdaten[4];
	    ($anzahl1, $anzahl2) = split(/\|/,$anzahl);
	    $anzahl1 = 0 if ($anzahl1 eq "");
	    $anzahl2 = 0 if ($anzahl2 eq "");
	    $anzahl   = $anzahl1 + $anzahl2;
	    $useremail=$memberdaten[5];
	    $date1    = $memberdaten[13];
	    $logtime = $memberdaten[27];
	    $addjy   = $memberdaten[28];
	    $meili   = $memberdaten[29];
	    $mymoney = $memberdaten[30];
	    $postdel = $memberdaten[31];

	    $logtime = 0 if ($logtime eq "");
	    $addjy   = 0 if ($addjy   eq "");
	    $meili   = 0 if ($meili   eq "");
	    $mymoney = 0 if ($mymoney eq "");
	    $postdel = 0 if ($postdel eq "");

	    $birthday = $memberdaten[36];

	    print MEMFILE  "$username\t$userad\t$anzahl\t$date1\t$useremail\t\n";   
	    print MEMFILE0 "$username\t$anzahl\t\n" if ($anzahl > 0);   
	    print MEMFILE1 "$username\t$useremail\t\n";   
	    print MEMFILE2 "$username\t$anzahl1\t$anzahl2\t$logtime\t$postdel\t$addjy\t$meili\t$mymoney\t\n";   
	    print MEMFILE3 "$username\t$birthday\t\n" if (($birthday ne "")&&($birthday ne "//"));  
	    print MEMFILE4 "$username\t".$memberdaten[7]."\t\n" if ($memberdaten[7] =~/^([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})$/);  
	} 
	close(MEMFILE4);
	close(MEMFILE3);
	close(MEMFILE2);
	close(MEMFILE1);
	close(MEMFILE0);
	close(MEMFILE);
        print qq~

⌨️ 快捷键说明

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