📄 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 = <IN>;
close(IN);
open(IN,"$COUNTRY_LIST") or &ERR2('不会打开被指定的文件夹.err no :country');
@COU_DATA = <IN>;
close(IN);
open(IN,"$COUNTRY_NO_LIST") or &ERR2('不会打开被指定的文件夹.err no :country no');
@COU_NO_DATA = <IN>;
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 = <IN>;
close(IN);
$dir="./charalog/main";
opendir(dirlist,"$dir");
while($file = readdir(dirlist)){
if($file =~ /\.cgi/i){
if(!open(page,"$dir/$file")){
&E_ERR("文件错误");
}
@page = <page>;
close(page);
push(@REGIST_VI,"@page<br>");
}
}
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<BR>人物不对<BR>和管理员联系.<BR>P1:$ROSER_URL/$FILE_ENTRY<BR>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 = <IN>;
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("<font color=000088><B>【建国】</B></font>\[$old_date\]新的$in{'chara_name'}国家$cou_name注册");
&MAP_LOG("<font color=000088><B>【建国】</B></font>新的$in{'chara_name'}国家$cou_name注册");
}else{
&MAP_LOG("<font color=0088CC><B>\[仕官\]</B></font>新的$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 "<center><hr size=0><h3>ERROR !</h3>\n";
print "<P><font color=red><B>$_[0]</B></font>\n";
print "<form action=\"$FILE_ENTRY\" method=\"post\"><input type=hidden name=id value=$in{'id'}><input type=hidden name=pass value=$in{'pass'}><input type=hidden name=mail value=$in{'mail'}><input type=hidden name=url value=$in{'url'}><input type=hidden name=chara_name value=$in{'chara_name'}><input type=hidden name=mes value=$in{'mes'}><input type=hidden name=mode value=entry><input type=submit value=\"返回\"></form>";
print "<P><hr size=0></center>\n</body></html>\n";
exit;
}
#------------------#
# 儊乕儖憲怣張棟 #
#------------------#
sub mail_to {
$sendmail = '/usr/lib/sendmail';
unless (-e $sendmail) { &E_ERR("sendmail不正确"); }
# 儊乕儖僞僀僩儖
$mail_sub = "注册完成通知";
&TIME_DATA;
$a_pass = crypt("$in{'id'}", ms);
# 儊乕儖杮暥
$mail_msg = <<"EOM";
$in{'chara_name'} 样
这次.$GAME_TITLE 成功注册.
请马上确认.
登记日期和时间:$daytime
名称:$host
加入人员名:$in{'chara_name'}
E-MAIL:$in{'mail'}
地址:http://$in{'url'}
ID:$in{'id'}
密码:$in{'pass'}
认证密码:$a_pass
认证根据注册密码来参加游戏。
[认证密设定]
$SANGOKU_URL/entry.cgi?mode=ATTESTATION
(从这里登记)
注册好了,认证了,就开始游戏吧!
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
$GAME_TITLE娗棟恖 maccyu
E-Mail: komatsuo\@livedoor.com
Home: http://www20.pos.to/~maccyu/
EOM
# JIS僐乕僪傊曄姺
&jcode'convert(*mail_sub,'jis');
&jcode'convert(*mail_msg,'jis');
# 僐儊儞僩撪偺夵峴偲僞僌傪暅尦
$mail_msg =~ s/<br>/\n/ig;
# 儊乕儖張棟
open(MAIL,"| $sendmail -t") || &E_ERR("送信失败");
print MAIL "To: $in{'mail'}\n";
print MAIL "Subject: $mail_sub\n";
print MAIL "MIME-Version: 1.0\n";
print MAIL "Content-type: text/plain; charset=ISO-2022-JP\n";
print MAIL "Content-Transfer-Encoding: 7bit\n";
print MAIL "X-Mailer: $ver\n\n";
print MAIL "$mail_msg\n";
close(MAIL);
}
1;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -