#!/usr/local/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"; 罪と罰++ 新規登録
$title

新 規 登 録


ユーザーID :
プレイヤ名 :
パスワード :
性別    :  男  女



  • ユーザーIDは 半角英数字4〜12文字 です。
  • プレイヤ名は 全角8(半角16)文字以内 です。
  • パスワードは 半角英数字4〜8文字 です。
  • 重複登録は禁止です。発見次第削除します。
  • $del_limit 日間放置するとキャラが抹消されます。
  • 最大$sanka人まで登録\可\能\です。
  • EOM } else{ print <<"EOM"; 新規登録
    新規登録
    プレイヤー名:(全角4〜8文字)
    ID:(半角英数4〜12文字)
    パスワード:(半角英数4〜8文字)
    性別:男
    INDEXへ 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'} =~ /\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);} }