#!/usr/bin/perl
# サーバーの環境に合わせて変更して下さい。
require './ore_config.cgi'; # ore_config.cgi의 패스
#-----------------------------------------------------------#
# 罪と罰++ 二律背反 #
# Copyright(C) 2001-2002 by Vivid Studio. BLANK BOARD #
# Vivid Studio.[ http://www17.big.or.jp/~obochan/vivid/ ] #
# BLANK BOARD [ http://pom.to/ ] #
#-----------------------------------------------------------#
$ver = '신규등록 v1.1'; # 버전 정보(변경 불가)
#--- [注意事項] --------------------------------------------#
# 1.このスクリプトは以下の利用規程に従って配布しています。 #
# http://www24.big.or.jp/~obo/game/ore_/gild/ #
#-----------------------------------------------------------#
# 以下処理 基本的にこれ以下はいじらないように。
&error("현재 점검 중입니다. 잠시만 기다려 주십시오(약 $ertm 분간)
상세 내역: $erni") if $er;
&error("현재 가입이 불가능합니다") if $kisei;
&get_time; # 日時取得
&safetime; # プレイ規制
&decode; # フォームデコード
&axs_check; # アクセスチェック
($mode eq 'regist2') ? ®ist2 : ®ist1 ;
exit;
#-------------------------------------------------------------------------------
# 以下サブルーチン
# キャラファイル追加処理
sub regist1{
print "Content-type: text/html\n\n";
if($mv_mode eq 'pc'){
print <<"EOM";
죄와 벌++ 신규 등록
EOM
}
else{
print <<"EOM";
신규 등록
신규 등록
메인으로
EOM
}
©right;
exit;
}
# キャラファイル追加処理
sub regist2{
&form_check; # フォーム情報チェック
&usrdata_read;
&usrdata_open;
&cdata_open;
require './inc/ore_sub-members-p1.cgi';&member_list;
foreach (0 .. $#tdat){
%DAT = '';
my @pairs = split(/,/,$tdat[$_]);
foreach (0 .. $#pairs){
my($key,$v) = split(/;/,$pairs[$_]);
$DAT{$key} = $v;
}
if($in{'nm'} eq $DAT{'nm'}){&error("동일한 플레이어명이 이미 존재합니다.");}
if($id eq $DAT{'id'}){&error("동일한 유저 ID가 이미 존재합니다.");}
# 期限切れ及び レベル2以内で3日間無アクセス(見物人排除) のファイル削除
if(($del_limit*3600*24<$time-$DAT{'la'}) || (3*3600*24<$time-$DAT{'la'} && $DAT{'lv'}<=2)){
unlink("$usrdata$DAT{'id'}\.cgi");
}
}
# 参加人数は最大でも400人ほど。リロード量がこわいので。
&error("현재 정원이 초과되어 신규 가입을 할 수 없습니다.") if $#tdat+1>=$sanka;
local($hp,$max_hp,$mp,$max_mp,$ua,$ud,$lr,$ag);
$hp = $max_hp = int(rand(5)+10);
$mp = $max_mp = int(rand(5)+10);
$ua = int(rand(3)+1);
$ud = int(rand(3)+1);
$lr = int(rand(3)+1);
$ag = int(rand(3)+1);
$gold = int(rand(500)+500);
$nm = $in{'nm'};
$sei= $in{'sei'};
$camp=0;
&dat_write;
chmod($chmod,"$usrdata$id\.cgi");
print "Content-type: text/html\n\n";
print <<"EOM";
죄와 벌++ 신규 등록
신규 등록 완료
NAME $in{'nm'}
I D $id
PASS $pw
HP $hp
MP $mp
UA $ua
UD $ud
LR $lr
타이틀로 돌아가기
|
EOM
©right;
exit;
}
# フォームデータチェック
sub form_check{
if(!$in{'nm'}){ &error("이름이 입력되지 않았습니다.",1); }
if(!$pw){ &error("비밀번호가 입력되지 않았습니다.",1); }
if(!$id){ &error("유저 ID가 입력되지 않았습니다.",1); }
if(!$in{'sei'}){ &error("성별이 입력되지 않았습니다.",1); }
if($in{'sei'}=~ m/[^12]/){ &error("성별 입력이 올바르지 않습니다.",1); }
if($in{'nm'} =~ /){ &error("이름에 올바르지 않은 문자( < )가 포함되어 있습니다.",1); }
if($in{'nm'} =~ />/){ &error("이름에 올바르지 않은 문자( > )가 포함되어 있습니다.",1); }
if($in{'nm'} =~ /:/){ &error("이름에 올바르지 않은 문자( : )가 포함되어 있습니다.",1); }
if($in{'nm'} =~ /;/){ &error("이름에 올바르지 않은 문자( ; )가 포함되어 있습니다.",1); }
if($in{'nm'} =~ /,/){ &error("이름에 올바르지 않은 문자( , )가 포함되어 있습니다.",1); }
if($in{'nm'} =~ /"/){ &error("이름에 올바르지 않은 문자( \" )가 포함되어 있습니다.",1); }
if($in{'nm'} =~ /'/){ &error("이름에 올바르지 않은 문자( ' )가 포함되어 있습니다.",1); }
if($in{'nm'} =~ /\//){ &error("이름에 올바르지 않은 문자( / )가 포함되어 있습니다.",1); }
if($in{'nm'} =~ /\\/){ &error("이름에 올바르지 않은 문자( \\ )가 포함되어 있습니다.",1); }
if($in{'nm'} =~ /\s/){ &error("이름에 올바르지 않은 문자( ` )가 포함되어 있습니다.",1); }
if($in{'nm'} =~ /`/){ &error("이름에 올바르지 않은 문자(전각 공백)가 포함되어 있습니다.",1); }
if($in{'nm'} =~ / /){ &error("이름에 올바르지 않은 문자(전각 공백)가 포함되어 있습니다.",1); }
if($id =~ m/[^0-9a-zA-Z]/){ &error("유저 ID는 반각 영문/숫자로 입력해 주세요.",1); }
if($pw =~ m/[^0-9a-zA-Z]/){ &error("비밀번호는 반각 영문/숫자로 입력해 주세요.",1); }
if(length($pw)<4 || length($pw)>8){ &error("비밀번호는 반각 영문/숫자 4~8자여야 합니다.",1); }
if(length($in{'nm'})>16){ &error("이름은 반각 16자 이내여야 합니다.",1); }
if(length($id)<4 || length($id)>12){ &error("유저 ID는 반각 영문/숫자 4~12자 이내여야 합니다.",1); }
if($id eq $pw){ &error("유저 ID와 비밀번호가 동일합니다.",1);}
}