#! /usr/local/bin/perl require './inc-base.cgi'; require './inc-expire.cgi'; require '../jcode.pl'; GetQuery(); Expire(); if($Q{admin} ne $MASTER_PASSWORD) { OutError('新規店舗登録権限がありません') if $NEW_SHOP_ADMIN; OutError('あなたは現在登録制限されています') if $ENV{'REMOTE_ADDR'} eq $DTblockip && $NEW_SHOP_BLOCKIP; } checkMaxUser(); if($Q{sname}.$Q{name}.$Q{own}.$Q{sei}.$Q{pass1}.$Q{pass2}) { $Q{name}=jcode'sjis($Q{name}); $Q{sname}=jcode'sjis($Q{sname}); $Q{own}=jcode'sjis($Q{own}); if(($Q{sname}.$Q{name}.$Q{own}.$Q{pass1}.$Q{pass2}) =~ /([,:;\t\r\n<>&])/ || ($Q{pass1}.$Q{pass2}.$Q{name}) =~ /([^A-Za-z0-9_\-])/ || $Q{name} eq 'soldoutadmin' ) { OutError('ID・店名・オーナー名・パスワードに使用できない'. '文字が含まれています。'); } if(!$Q{sname} || !$Q{name} || !$Q{own} || !$Q{sei} || !$Q{pass1} || !$Q{pass2}) { OutError('ID・店名・オーナー名・性別・パスワードを入力してください。'); } if($Q{pass1} ne $Q{pass2}) { OutError('確認パスワードが違っています。'); } if(length($Q{name})>12 || length($Q{sname})>40 || length($Q{own})>16 || length($Q{pass1})>12 || length($Q{pass2})>12) { OutError('名前(12文字)・店名(20文字)・オーナー名(16文字)・パスワード(12文字)の文字数が多いです。'); } Lock(); DataRead(); checkMaxUser(); OutError('既に存在するIDです。-> '.$Q{name}) if $name2pass{$Q{name}}; foreach $idx (0..$#DT) { OutError('既に存在する店名です。-> '.$Q{sname}) if $DT[$idx]->{shopname} eq $Q{sname}; } $idx=$DTusercount; $DTlasttime=time() if !$idx; $DT[$idx]={}; $DT=$DT[$idx]; $DT->{status} =1; $DT->{id} =$DTnextid; $DT->{lastlogin} =time(); $DT->{name} =$Q{name}; $DT->{shopname} =$Q{sname}; $DT->{pass} =$PASSWORD_CRYPT ? crypt($Q{pass1},'mu') : $Q{pass1}; $DT->{money} =100000; $DT->{time} =time()-12*60*60; $DT->{rank} =5015; $DT->{saleyestaday} =0; $DT->{saletoday} =0; $DT->{costtoday} =0; $DT->{costyestaday} =0; $DT->{paytoday} =0; $DT->{payyestaday} =0; $DT->{showcasecount}=1; $DT->{itemyestaday} ={}; $DT->{itemtoday} ={}; $DT->{remoteaddr} =$ENV{'REMOTE_ADDR'}; $DT->{rankingyestaday}=$MAX_USER; $DT->{own} =$Q{own}; $DT->{sei} =$Q{sei}; $DT->{rey} =0; foreach $cnt (0..$DT->{showcasecount}-1) { $DT->{showcase}[$cnt]=0; $DT->{price}[$cnt]=0; } foreach $cnt (0..$MAX_ITEM-1) { $DT->{item}[$cnt]=0; } $DTblockip=$DT->{remoteaddr}; WriteLog(1,0,0,$Q{sname}."が新装開店しました",1); DataWrite(); UnLock(); @seibetu = ("男","女","\不\明"); OutHTML ( '登録終了', "ID:$Q{name}
店名:$Q{sname}
オーナー名:$Q{own}
性別:@seibetu[$Q{sei}-1]
パスワード:$Q{pass1}

". "上記にて登録しました。

". "それでは、お楽しみ下さい。

". "初めての方は、メニューの「経営入門」を一通りご覧下さい。

". "ゲームスタート

". "※携帯端末の場合、上記リンクに移動後、ブックマークしておくとパスワード入力の手間が省けます。". "ただし、ブックマークにパスワード情報が記録されますので、注意してください。" ); exit; } $disp.=<<"HTML";
ID 半角英数のみ
店名 全角OK
オーナー名 全角OK
性別
パスワード 半角英数のみ
パスワード確認のためもう一度

ルール(必読)※別ウィンドウで開きます
セキュリティについての詳細※別ウィンドウで開きます

パスワードにはバレても構\わないモノをお使い下さい。 本ゲームのパスワード処理はセキュリティ的に非常に甘いですので、 絶対にプロバイダやメールアカウントなどの重要なパスワードと同じ物は使わないでください。 バレても本ゲーム以外には損害がないパスワードでお願いします。 HTML OutHTML('新規店舗開店',$disp); exit; sub checkMaxUser { if($DTusercount>=$MAX_USER) { OutError ( '申し訳ありませんが、現在空き店舗がありません。
'. '空くのをお待ちください。

'. 'ちなみに、深夜0:00に空く可能性があります。'. '' ); } }