www.pudn.com > NETv2.0.rar > new_chara.pl
#_/_/_/_/_/_/_/_/_/_/_/_/#
# NEW_CHARA #
#_/_/_/_/_/_/_/_/_/_/_/_/#
sub NEW_CHARA {
if($CHARA_STOP){ &ERR2("注册成功"); }
if ($in{'id'} =~ m/[^0-9a-zA-Z]/) {&E_ERR("ID 在一半角英国数字以外的包含文字."); }
if ($in{'pass'} =~ m/[^0-9a-zA-Z]/) {&E_ERR("密码在一半角英国数字以外的包含文字."); }
if ($in{'mail'} =~ /yahoo/ || $in{'mail'} =~ /hotmail/) {&E_ERR("邮箱不对."); }
if ($in{'mail'} eq "" || $in{'mail'} !~ /(.*)\@(.*)\.(.*)/){&E_ERR("邮箱不正确.");}
if($in{'id'} eq "" or length($in{'id'}) < 4 or length($in{'id'}) > 8) { &E_ERR("ID,请用 4 文字以上,8 文字以下输入."); }
elsif($in{'pass'} eq "" || length($in{'pass'}) < 4 || length($in{'pass'}) > 8) { &E_ERR("密码,请用 4 文字以上,8 文字以下输入."); }
elsif($in{'con'} eq "") { &E_ERR("没有选择初期位置."); }
elsif($in{'mail'} eq "\@" || $in{'mail'} eq "") { &E_ERR("邮箱不对."); }
elsif($in{'pass'} eq "" || length($in{'pass'}) < 4 || length($in{'pass'}) > 16) { &E_ERR("密码输入不正确"); }
elsif($in{'chara_name'} eq "" || length($in{'chara_name'}) < 4 || length($in{'chara_name'}) > 12) { &E_ERR("没有正确输入名字"); }
elsif($in{'mes'} eq "" || length($in{'mes'}) < 4 || length($in{'mes'}) > 48) { &E_ERR("不被加入,错误."); }
elsif($in{'id'} eq $in{'pass'}){&E_ERR("ID或密码相同,不能注册."); }
if ($in{'str'} =~ m/[^0-9]/){&E_ERR("能力值输入不正确"); }
if($in{'str'} eq "" || $in{'str'} < 5 || $in{'str'} > 100){&E_ERR("请好好看能力范围");}
if ($in{'int'} =~ m/[^0-9]/){&E_ERR("智力值输入不正确"); }
if($in{'int'} eq "" || $in{'int'} < 5 || $in{'int'} > 100){&E_ERR("请好好看能力范围");}
if ($in{'tou'} =~ m/[^0-9]/){&E_ERR("统率力值输入不正确"); }
if($in{'tou'} eq "" || $in{'tou'} < 5 || $in{'tou'} > 100){&E_ERR("请好好看能力范围");}
$max = $in{'str'} + $in{'int'} + $in{'tou'};
if($max ne "150"){
&E_ERR("\能力\输入不正确($max)");
}
open(IN,"$TOWN_LIST") or &ERR("不会打开被指定的文件夹.");
@TOWN_DATA = ;
close(IN);
open(IN,"$COUNTRY_LIST") or &ERR2('不会打开被指定的文件夹.err no :country');
@COU_DATA = ;
close(IN);
open(IN,"$COUNTRY_NO_LIST") or &ERR2('不会打开被指定的文件夹.err no :country no');
@COU_NO_DATA = ;
close(IN);
$zc=0;$m_hit=0;
($z2name,$z2con)=split(/<>/,$TOWN_DATA[$in{'con'}]);
if($z2con eq ""){
if($in{'ele'} eq ""){
&E_ERR("国家颜色");
}elsif($in{'cou_name'} eq "" || length($in{'cou_name'}) < 2 || length($in{'cou_name'}) > 8) { &E_ERR("没在正确被输入国家的名字."); }
$m_hit = 1;
$cou_name = $in{'cou_name'};
$new_cou_no = @COU_NO_DATA + 1;
$hit = 1;
}else{
foreach(@COU_DATA){
($xcid,$xname,$xele,$xmark,$xking,$xmes,$xsub,$xpri)=split(/<>/);
if($xcid eq $z2con){
$cou_name = $xname;
$kcon = $xcid;
$hit = 1;
}
}
}
if(!$hit){
&E_ERR("国家存在.");
}
if($lockkey) { &F_LOCK; }
&SET_COOKIE;
&HOST_NAME;
$date = time();
$pos = 2;
open(IN,"./charalog/main/$in{'id'}.cgi");
@NEWCHARA = ;
close(IN);
$dir="./charalog/main";
opendir(dirlist,"$dir");
while($file = readdir(dirlist)){
if($file =~ /\.cgi/i){
if(!open(page,"$dir/$file")){
&E_ERR("文件错误");
}
@page = ;
close(page);
push(@REGIST_VI,"@page
");
}
}
closedir(dirlist);
$hit=0;@new_chara=();
($rkid,$rkpass,$rkname,$rkchara,$rkstr,$rkint,$rklea,$rkcha,$rksol,$rkgat,$rkcon,$rkgold,$rkrice,$rkcex,$rkclass,$rkarm,$rkbook,$rkbank,$rksub1,$rksub2,$rkpos,$rkmes,$rkhost,$rkdate,$rkmail,$rkos) = split(/<>/,$NEWCHARA[0]);
if($rkid eq "$in{'id'}") {&E_ERR("ID问题");}
if($REFREE){
if($ENV{'HTTP_REFERER'} ne "$SANGOKU_URL/$FILE_ENTRY" && $ENV{'HTTP_REFERER'} ne "$SANGOKU_URL/$FILE_TOP" && $ENV{'HTTP_REFERER'} ne "$SANGOKU_URL/"){ &E_ERR("ERR No.001
人物不对
和管理员联系.
P1:$ROSER_URL/$FILE_ENTRY
P2$ENV{'HTTP_REFERER'}"); }
}
foreach(@REGIST_VI){
($rkid,$rkpass,$rkname,$rkchara,$rkstr,$rkint,$rklea,$rkcha,$rksol,$rkgat,$rkcon,$rkgold,$rkrice,$rkcex,$rkclass,$rkarm,$rkbook,$rkbank,$rksub1,$rksub2,$rkpos,$rkmes,$rkhost,$rkdate,$rkmail,$rkos) = split(/<>/);
if($ACCESS){
if($host eq $rkhost ){
&E_ERR("IP相同的人在登记.");
}
}
if($rkname eq "$in{'chara_name'}"){
&E_ERR("名字正被注册");
}
if($rkmail eq "$in{'mail'}"){
&E_ERR("邮箱被注册.");
}
}
if($m_hit){
$kcon = $new_cou_no;
$month_read = "./log_file/date_count.cgi";
open(IN,"$month_read") or &ERR2('打不开文件.');
@MONTH_DATA = ;
close(IN);
($myear,$mmonth,$mtime) = split(/<>/,$MONTH_DATA[0]);
$old_date = sprintf("%02d\年%02d\月", $F_YEAR+$myear, $mmonth);
push(@COU_DATA,"$new_cou_no<>$in{'cou_name'}<>$in{'ele'}<>1<>$in{'id'}<><>$in{'chara_name'}<>1<>\n");
open(OUT,">$COUNTRY_LIST") or &ERR('不被写入 COUNTRY 资料');
print OUT @COU_DATA;
close(OUT);
push(@COU_NO_DATA,"$new_cou_no<>$in{'cou_name'}<>$in{'ele'}<>1<>$in{'id'}<><>$in{'chara_name'}<>1<>\n");
open(OUT,">$COUNTRY_NO_LIST") or &ERR('不被写入 COUNTRY 资料');
print OUT @COU_NO_DATA;
close(OUT);
&TOWN_DATA_OPEN("$in{'con'}");
$zcon = $new_cou_no;
&TOWN_DATA_INPUT;
&MAP_LOG2("【建国】\[$old_date\]新的$in{'chara_name'}国家$cou_name注册");
&MAP_LOG("【建国】新的$in{'chara_name'}国家$cou_name注册");
}else{
&MAP_LOG("\[仕官\]新的$in{'chara_name'}国家$cou_name做官.");
}
@NEW_COM=();
for($i=0;$i<$MAX_COM;$i++){
push(@NEW_COM,"<><><>$tt<><><>50<>\n");
}
open(OUT,">./charalog/command/$in{'id'}.cgi");
print OUT @NEW_COM;
close(OUT);
if($ATTESTATION){
&mail_to;
$os = 0;
}else{
$os = 1;
}
$kcha = int(rand(101));
$ksol = 0;
$kgat = 0;
$kgold = 1000;
$krice = 500;
$kcex = 0;
$kclass = 0;
$karm = 0;
$kbook = 0;
$kbank = "";
$ksub1 = "";
$ksub2 = $DEL_TURN - 10;
unshift(@new_chara,"$in{'id'}<>$in{'pass'}<>$in{'chara_name'}<>$in{'chara'}<>$in{'str'}<>$in{'int'}<>$in{'tou'}<>$kcha<>$ksol<>$kgat<>$kcon<>$kgold<>$krice<>$kcex<>$kclass<>$karm<>$kbook<>$kbank<>$ksub1<>$ksub2<>$in{'con'}<>$in{'mes'}<>$host<>$date<>$in{'mail'}<>$os<>\n");
open(OUT,">./charalog/main/$in{'id'}.cgi");
print OUT @new_chara;
close(OUT);
if (-d $lockfile) { &UNLOCK_FILE; }
&DATA_SEND;
exit;
}
#_/_/_/_/_/_/_/_/#
# ERROR PRINT #
#_/_/_/_/_/_/_/_/#
sub E_ERR {
&HEADER;
if (-e $lockfile) { unlink($lockfile); }
print "
ERROR !
\n";
print "$_[0]\n";
print "
";
print "
\n