www.pudn.com > bbs3000afree.zip > cjyh.cgi
#!/usr/bin/perl
#------------------------------------------------------#
# 本程序为Yuzi工作室提供 #
# Yuzi论坛3000(BBS3000)v4.00 #
#------------------------------------------------------#
$cgipa="."; # CGI程序文件的绝对路径
######################
## 以下部分不需修改 ##
######################
require "$cgipa/setup.cgi";
&GetCookies;
$cgiurl ="cjyh.cgi";
$list="$filepath/data/list.cgi";
$listpage = 20;
if ($ENV{'REQUEST_METHOD'} eq "POST") {
read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
} else {
$buffer = $ENV{'QUERY_STRING'};
}
@pairs = split(/&/, $buffer);
foreach $pair (@pairs) {
($name, $value) = split(/=/, $pair);
$value=~tr/+/ /;
$value=~s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$value=~s/\.\.//g;
$value=~s/\t//g;
if($FORM{$name}){$FORM{$name}=$FORM{$name}.",".$value;}else{$FORM{$name}=$value;}
}
$username=$FORM{'username'};
$menu=$FORM{'menu'};
$title=$FORM{'title'};
$selname=$FORM{'selname'};
$mail=$FORM{'mail'};
$sort=$FORM{'sort'};
$page=$FORM{'page'};
$money=$FORM{'money'};
$charm=$FORM{'charm'};
if (-e "$cgipa/install.cgi"){unlink("$cgipa/install.cgi");}
if($menu eq "mail"){&mail;exit;}
############
if(($admname eq $Cookies{admname})&&($delpsd ne $Cookies{delpsd})){
($kkk)=split(/\)/,$ENV{'HTTP_USER_AGENT'});
($bzd,$ie,$win,$me)=split(/;/,$kkk);
if($me eq " Win 9x 4.90"){$win="Windows Me"}
elsif($win eq " Windows NT 5.0"){$win="Windows 2000"}
elsif($win eq " Windows NT 5.1"){$win="Windows XP"};
$loginname=$Cookies{username};
if ($Cookies{username} eq ""){$loginname="访客";}
open(TITLES,"$filepath/data/log");
@hastitles=;
close(TITLES);
open(TITLES,">$filepath/data/log");
print TITLES "$thistime\t$loginname\t$Cookies{delpsd}\t$from\t$win$ie\t登陆失败\n";
for($i=0;$i<=18;$i++){$m=@hastitles[$i];print TITLES "$m";}
close(TITLES);
}
############
if(($admname ne $Cookies{admname})||($delpsd ne $Cookies{delpsd})){
&csshtml;
print <
注意:
只有社区区长才能登陆社区管理中心。
未经过授权的尝试登陆行为将会被记录在案!
|
EOF
exit;
}
elsif($menu eq "kills"){&kills;exit;}
elsif($menu eq "listusers"){&listusers;exit;}
elsif($menu eq "chgusers"){&chgusers;exit;}
elsif($menu eq "del3"){&del3;exit;}
elsif($menu eq "ckyh"){&ckyh;exit;}
elsif($menu eq "ckbz"){&ckbz;exit;}
elsif($menu eq "bbslb"){&bbslb;exit;}
elsif($menu eq "qlid"){&qlid;exit;}
elsif($menu eq "club"){&club;exit;}
elsif($menu eq "money"){&money;exit;}
elsif($menu eq "clubok"){&clubok;exit;}
elsif($menu eq "lucida"){&lucida;exit;}
elsif($menu eq "lucidaok"){&lucidaok;exit;}
elsif($menu eq "rank"){&rank;exit;}
elsif($menu eq "rankok"){&rankok;exit;}
elsif($menu eq "setup"){&setup;exit;}
elsif($menu eq "setupok"){&setupok;exit;}
elsif($menu eq "cleanname"){&cleanname;exit;}
elsif($menu eq "all"){&all;exit;}
elsif($menu eq "fix"){&fix;exit;}
elsif($menu eq "log"){&log;exit;}
elsif($menu eq "editcss"){&editcss;exit;}
elsif($menu eq "cssok"){&cssok;exit;}
elsif($menu eq "link"){&link;exit;}
elsif($menu eq "upmember"){&upmember;exit;}
elsif($menu eq "upfile"){&upfile;exit;}
elsif($menu eq "upfileok"){&upfileok;exit;}
elsif($menu eq "linkok"){&linkok;exit;}
elsif($menu eq "linkdel"){&linkdel;exit;}
elsif($menu eq "bak"){&bak;exit;}
elsif($menu eq "unbak"){&unbak;exit;}
elsif($menu eq "bakok"){do "$cgipa/sub/tar.cgi";exit;}
elsif($menu eq "unbakok"){do "$cgipa/sub/untar.cgi";exit;}
elsif($menu eq "ratinglog"){&ratinglog;exit;}
elsif($menu eq "rating"){&rating;exit;}
else{
&csshtml;
$program_use_time=times;
print <
| Perl 版本: |
$] |
| 服务器域名: | $ENV{'HTTP_HOST'} |
EOF
if($ENV{'SERVER_ADDR'}){print"| 服务器IP地址: | $ENV{'SERVER_ADDR'} |
";}
print <服务器操作系统: | $^O |
EOF
if($ENV{'COMPUTERNAME'}){print"| 服务器计算机名称: | $ENV{'COMPUTERNAME'} |
";}
print <服务器HTTP软件名称: | $ENV{'SERVER_Software'} |
| 服务器现在时间: | $year年$mon月$mday日 $hour:$min:$sec |
EOF
if($program_use_time < 1){print"| 运行消耗时间: | $program_use_time ms | ";}
($kkk)=split(/\)/,$ENV{'HTTP_USER_AGENT'});
($bzd,$ie,$win,$me)=split(/;/,$kkk);
if($me eq " Win 9x 4.90"){$win="Windows Me"}
elsif($win eq " Windows NT 5.0"){$win="Windows 2000"}
elsif($win eq " Windows NT 5.1"){$win="Windows XP"};
$loginname=$Cookies{username};
if ($Cookies{username} eq ""){$loginname="访客";}
open(TITLES,"$filepath/data/log");
@hastitles=;
close(TITLES);
open(TITLES,">$filepath/data/log");
print TITLES "$thistime\t$loginname\t不显示\t$from\t$win$ie\t登陆成功\n";
for($i=0;$i<=18;$i++){$m=@hastitles[$i];print TITLES "$m";}
close(TITLES);
exit;
}
#########
sub listusers{
&csshtml;
print <
function up_reset(){
if (confirm("此功能较耗系统资源,建议在系统较空闲时使用!")){
return true;
}
return false;
}
点击更新用户排行榜
EOF
exit;
}
##########
sub chgusers{
open(NUMBER,"$filepath/data/ip");
$ip=;
close(NUMBER);
($ip1,$ip2,$ip3,$ip4)=split(/\./,$ENV{'REMOTE_ADDR'});
$rfrom="$ip1.$ip2.*.*";
if($ip ne $rfrom){&errorview("对不起,您的IP地址不是 $ip 请重新上传install.cgi文件,再运行install.cgi,系统才会自动设置IP地址");}
unlink("$filepath/yhzl/$selname.cgi");
unlink("$filepath/guest/1$selname.cgi");
unlink("$filepath/guest/2$selname.cgi");
unlink("$filepath/favorites/$selname.cgi");
unlink("$filepath/favorites/2$selname.cgi");
unlink("$filepath/favorites/3$selname.cgi");
unlink("$filepath/bank/$selname.cgi");
unlink("$filepath/friend/$selname.cgi");
unlink("$filepath/postlog/$selname.cgi");
unlink("$ImgDir/img/$selname.jpg");
unlink("$ImgDir/portrait/$selname.gif");
unlink("$filepath/article/$selname.cgi");
&csshtml;
print <|
已 经 成 功 删 除 用 户 $selname 的 所 有 资 料 ! |
[ 返 回 ]
EOF
exit;
}
sub upmember{
open(TMP,">$filepath/data/fixtop");
close(TMP);
opendir (MEMBERDIR2, "$filepath/yhzl");
@lines = readdir(MEMBERDIR2);
closedir (MEMBERDIR2);
foreach $username1 (@lines){
$i++;
open(PSD,"$filepath/yhzl/$username1");
$lines=;
close(PSD);
($rpassword,$rname,$rmail,$rhome,$rlast,$rqm,$rsex,$rwork,$rcity,$rlove,$rfy,$rhf)=split(/\t/,$lines);
$tol=$rfy+$rhf;
@string[$i]="$tol\t$username1\n";
}
@string=(reverse sort{$a<=>$b}@string);
open(PSD,">$filepath/data/usertop");
foreach(@string[0..19]){
$_=~s/\n//isg;
print PSD "$_\n";
}
close(PSD);
chmod(0666,"$filepath/data/usertop");
unlink("$filepath/data/fixtop");
&csshtml;
print <
[ 返 回 ]
EOF
exit;
}
##########
sub kills{
open(NUMBER,"$filepath/data/ip");
$ip=;
close(NUMBER);
($ip1,$ip2,$ip3,$ip4)=split(/\./,$ENV{'REMOTE_ADDR'});
$rfrom="$ip1.$ip2.*.*";
if($ip ne $rfrom){&errorview("对不起,您的IP地址不是 $ip 请重新上传install.cgi文件,再运行install.cgi,系统才会自动设置IP地址");}
open (GUEST,"$filepath/data/list.cgi");
@lines=;
close(GUEST);
open (GUEST,">$filepath/data/list.cgi");
foreach $usersays (@lines) {
chomp($usersays);
($index)=split(/\t/,$usersays);
if($selname ne $index){
print GUEST "$usersays\n";
}}
close(GUEST);
opendir (MEMBERDIR2, "$filepath/list/$selname");
@members2 = readdir(MEMBERDIR2);
closedir (MEMBERDIR2);
foreach $m (@members2){
unlink("$filepath/list/$selname/$m");
}
rmdir("$filepath/list/$selname");
unlink("$filepath/list/$selname.cgi");
&csshtml;
print <|
已 经 成 功 删 除 此 论 坛 的 所 有 数 据 ! |
[ 返 回 ]
EOF
exit;
}
sub fix{
chmod(0777,"$filepath/list/$selname/");
open(MEMBERDIR2,">$filepath/list/$selname/bbs");
close(MEMBERDIR2);
chmod(0666,"$filepath/list/$selname/bbs");
&csshtml;
print <|
已 经 成 功 修 复 此 论 坛 的 索 引 文 件 ! |
[ 返 回 ]
EOF
exit;
}
##########
sub ckyh{
if ( -e "$filepath/yhzl/$username.cgi"){
open(PSD,"$filepath/yhzl/$username.cgi");
$line=;
close(PSD);
($rdpassword,$username1,$mail1,$home1,$lasttime1,$qm1,$sex1,$work1,$city1,$love1,$rfy,$rhf,$tu,$jiao,$iewin,$QQ,$photo,$levelname,$level)=split(/\t/,$line);
$fy1=$rfy+0;
$hf1=$rhf+0;
$tol=$fy1+$hf1;
open(NUMBER,"$filepath/guest/2$username.cgi");
$NUMBER=;
close(NUMBER);
($lys,$oldlys,$money,$charm)=split(/\t/,$NUMBER);
if($sex1 eq ""){$sex1="(不告诉您)"};
if($city1 eq ""){$city1="(不告诉您)"};
if($love1 eq ""){$love1="(不告诉您)"};
if($work1 eq ""){$work1="(不告诉您)"};
if(($home1 eq "http://")||($home1 eq "")){$home1="(不告诉您)"};
if($mail1 eq ""){$mail1="(不告诉您)"};
if($jiao eq ""){$jiao="这家伙很懒,什么都没有留下。"};
$fy1=$rfy+0;
$hf1=$rhf+0;
$tol=$fy1+$hf1;
if (-e "$ImgDir/img/$username.jpg") {$ttt="$ImgurlDir/$photo.jpg"}else{$ttt="$imagurl/photo.gif"}
&csshtml;
print <
function del_reset(){
if (confirm("您确定要删除该用户的资料吗?")){
return true;
}
return false;
}
EOF
exit;
}else{
&errorview("对不起,此用户没有注册!");exit;
}}
##########
sub ckbz{
if ($FORM{'bzname'} ne ""){
if ( -e "$filepath/yhzl/$FORM{'bzname'}.cgi"){}else{&errorview("对不起,您输入的这个新版主的用户名还没有注册!");}
open(PSD,"$filepath/list/$username.cgi");
@lines=;
close(PSD);
foreach $line (@lines) {
chomp($line);
($rname,$rpass,$rmail,$rhome,$rtitle,$yhq,$rtime,$htmlt,$htmlw,$jj,$fbanz)=split(/\t/,$line);
}
open(PSD,">$filepath/list/$username.cgi");
print PSD $FORM{'bzname'}."\t\t".$rmail."\t".$rhome."\t".$rtitle."\t".$yhq."\t".$rtime."\t".$htmlt."\t".$htmlw."\t".$jj."\t".$fbanz;
close(PSD);
}
if ( -e "$filepath/list/$username.cgi"){
open(PSD,"$filepath/list/$username.cgi");
@lines=;
close(PSD);
foreach $line (@lines) {
chomp($line);
($rname,$rpass,$rmail,$rhome,$rtitle,$yhq,$rtime,$htmlt,$htmlw)=split(/\t/,$line);
}
open(PSD88,"$filepath/yhzl/$rname.cgi");
@lines88=;
close(PSD88);
foreach $line88 (@lines88) {
chomp($line88);
($mmymm)=split(/\t/,$line88);
}
$oldmon=$mon-2;
if($oldmon < 1){$year=$year-1;$oldmon=$oldmon+12}
if($oldmon <10){$oldmon="0".$oldmon;}
&csshtml;
print <
function del_reset(){
if (confirm("您确定要删除该论坛的全部数据吗?")){
return true;
}
return false;
}
[ 返 回 ]
EOF
exit;
}else{
&errorview("对不起,此ID没有注册!");exit;
}}
#########
sub bbslb{
&csshtml;
print <
EOF
open(ROOM,"$list");
@lines=;
close(ROOM);
$size=@lines;
$ii=0;
$j=$size;
while ($j>0) {
$j=$j-$listpage;
$ii++;
}
open(TITLES,"$filepath/list/bbs");
@hastitles=;
close(TITLES);
$bbsdx=@hastitles;
print <
|
| 讨论区 |
论题数 |
版主 |
资料 |
EOF
if($page eq ""){$page=1;}
$pages=$page-1;
$pages=$page*$listpage-$listpage;
for($i=$pages; $i<$pages+$listpage; $i++) {
$line=@lines[$i];
chomp($line);
if($line ne ""){
($username1)=split(/\t/,$line);
open(TITLES,"$filepath/list/$username1.cgi");
@a=;
close(TITLES);
foreach $m (@a){
chomp($m);
if($m ne ""){
($rname,$rpass,$rmail,$rhome,$rtitle,$yhq,$rtime,$htmlt,$htmlw,$jj)=split(/\t/,$m);
}
$bbsbook ="$filepath/list/$username1/bbs";
open(TITLES,"$bbsbook");
@hastitles=;
close(TITLES);
$hastitle=@hastitles;
$wzs=$hastitle;
print < $rtitle $jj | $wzs |
$rname | |
EOF
}}
}
print <免费论坛服务由
$zyname
提供 程序制作:Yuzi工作室 |
|
EOF
$j=$size;
while ($j>0) {
print "" if ($page != $ii);
print "[$ii]";
print "" if ($page != $ii);
$j=$j-$listpage;
$ii--;
}
print < |