📄 foruminit.cgi
字号:
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 + -