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

📄 new_chara.pl

📁 三国网页游戏原码 增加了亡命也就是判国 还修进了管理工具
💻 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 + -