#!/usr/bin/perl #サーバーに合わせて(/usr/local/bin/perlなどに)設定。 ########################################################################### # # Hal Shopping Cart System(shop_hal_proA7) # # スクリプト名:show_log.cgi(2002/09/30) # 本スクリプトはハル・ネットワークスが書いたものです。 # 本スクリプトついての質問は下記へお願いします。 # info@hal9800.com http://www.hal9800.com/ # ########################################################################### #トップページへのリンクを指定 $top="./frontpage.cgi"; #jcode.plへのパスを指定 require './jcode.pl'; #library.plへのパス require './library.pl'; #config.plへのパス require './config.pl'; #基本設定読み込み &config; ####初期設定ここまで########################################################### &decode_form; if ($mode eq 'enter'){&enter;exit;} if ($mode eq 'member'){&member;exit;} if ($mode eq 'edit_check'){&edit_check;exit;} if ($mode eq 'del_check'){&del_check;exit;} if ($mode eq 'delete'){&delete_log;exit;} if ($mode eq 'delete2'){&delete_log2;exit;} if ($mode eq 'sort'){&show_log;exit;} if ($mode eq 'edit_form'){&edit_form;exit;} if ($mode eq 'edit'){&edit;exit;} if ($mode eq 'edit_form2'){&edit_form2;exit;} if ($mode eq 'edit2'){&edit2;exit;} if ($mode eq 'add_form'){&add_form;exit;} if ($mode eq 'add'){&add;exit;} if ($mode eq 'add_form2'){&add_form2;exit;} if ($mode eq 'add2'){&add2;exit;} #&show_log; exit; ####################################################################### sub enter{ &header("customer_log"); print<<"EOF";
ホーム
お支払方法
販売法表\記
お問い合せ
$shop

 顧客管理


顧客一覧を表\示する
顧客を新規に登録する



EOF &footer; } ############ #会員入り口 ############ sub member{ &header("member"); print<<"EOF";
home
$shop

会員登録
>>トップページに戻る


新規登録
登録更新・ポイント確認
登録抹消

パスワードをお忘れの方はこちらで確認できます。



EOF &footer; } sub edit_check{ &header("会員登録"); print<<"EOF";
home
$shop

登録情報変更・ポイント確認
>>トップページに戻る


登録電話番号: (例:000-000-0000)
パスワード:


EOF &footer; } sub del_check{ &header("会員登録抹消"); print<<"EOF";
ホーム
お支払方法
販売法表\記
お問い合せ

登録抹消
>>トップページに戻る


登録電話番号: (例:000-000-0000)
パスワード:


EOF &footer; } ############## #顧客一覧表示 ############## sub show_log{ open(LOG,"$logfile1") || &error("$logfile1を開けません"); @logs = ; close(LOG); if(!@logs){&kanri_error("登録はありません");} if ($sort eq "kingaku"){ @logs=sort{(split(/\,/,$b))[8]<=>(split(/\,/,$a))[8];}@logs;} elsif ($sort eq "name"){ @logs=sort{(split(/\,/,$a))[2] cmp (split(/\,/,$b))[2];}@logs;} elsif ($sort eq "date1"){ @logs=sort{(split(/\,/,$b))[0] cmp (split(/\,/,$a))[0];}@logs;} elsif ($sort eq "date2"){ @logs=sort{(split(/\,/,$a))[0] cmp (split(/\,/,$b))[0];}@logs;} elsif ($sort eq "pref"){ @logs=sort{(split(/\,/,$a))[4] cmp (split(/\,/,$b))[4];}@logs;} elsif ($sort eq "email"){ @logs=sort{(split(/\,/,$a))[7] cmp (split(/\,/,$b))[7];}@logs;} &header("顧客管理"); print<<"EOF";
home
$shop

 顧客管理

データのソ\ート: 名前 日付(降順) 日付(昇順) 県名 E-mail 購入額 >>
新規登録:右のボタンを押して登録画面へお進みください。 >>
データの削除:削除する項目をチェックして削除ボタンを押してください。 >>
データ編集:「編」をクリックして編集画面へお進みください。

EOF foreach $log (@logs){ ($serial,$date,$namae,$post,$pref,$address,$phone,$email,$subtotal,$furigana,$shiharai,$namae2,$furigana2,$post2,$address2,$phone2,$passwd,$pref2,$mailmgz,$point) = split(/,/,$log); # chop $mailmgz;#行末に「,」を挿入(02/09/10) if (!$passwd){$passwd="--";} print"\n"; print"\n"; print"\n"; print"\n"; print"\n"; print"\n"; print"\n"; print"\n"; print"\n"; print"\n"; print"\n"; print"\n"; } print <<"EOF";
削除 編集 最終販売日 氏名 パス 県名 住所 電話番号 E-mail 購入額
\n"; print "\n"; print "$date$namae$passwd$pref$address$phone$email\\$subtotal


EOF &footer; exit; } ###################### #編集フォーム(管理用) ###################### sub edit_form{ open(LOG,"$logfile1") || &error("$logfile1を開けません"); @logs = ; close(LOG); foreach $log (@logs){ ($e_serial,$e_date,$e_namae,$e_post,$e_pref,$e_address,$e_phone,$e_email,$e_subtotal,$e_furigana,$e_shiharai,$e_namae2,$e_furigana2,$e_post2,$e_address2,$e_phone2,$e_passwd,$e_pref2,$e_mailmgz,$e_point) = split(/,/,$log); # chop $c_mailmgz;#行末に「,」を挿入(02/09/10) if($phone eq $e_phone){last;} } if ($e_mailmgz eq "yes") { $checkedmmyes="checked";} elsif ($e_mailmgz eq "no") { $checkedmmno="checked";} &header("edit_form"); print<<"EOF";
home
$shop

 登録情報編集

登録情報編集フォーム
シリアルNO (最終販売日の年月日を / を入れずに半角でご記入ください) (一桁の日付は0をつけて20020101のようにして下さい)
最終販売日 (半角でご記入ください)
名前
パスワード (英数半角10字以内、非会員は空白)
郵便番号 (半角でご記入ください)例:000-0000
県名
住所
電話番号 $e_phone
Email (半角でご記入ください)
メール連絡 希望する  希望しない
購買額  円(半角でご記入ください)
ポイント  (半角でご記入ください)

EOF &footer; } ############## #編集(管理用) ############## sub edit{ #&error("サンプルのため新規作成できません"); if ($a_serial eq ''){&error ('シリアルNOを入力して下さい。');} if ($a_serial =~ /\D/ ) { &error('シリアルNOは半角数字で入力して下さい'); } if ($a_date eq '') { &error('最終販売日を入力して下さい');} if ($a_namae eq '') { &error('顧客名を入力して下さい');} #if ($a_passwd eq '') { &error('パスワードを入力して下さい');} if ($a_passwd){ if ($a_passwd !~ /\w+/) { &error("パスワードの入力が不正です"); } } if ($a_post eq ''){&error ('郵便番号を入力して下さい。');} if ($a_post !~ /^\d{3}-\d{4}$/) { &error("郵便番号の入力が不正です"); } if ($a_pref eq 'none'){&error ('県名を選択して下さい。');} if ($a_address eq ''){&error ('住所を入力して下さい。');} #if ($a_phone eq ''){&error ('電話番号を入力して下さい。');} #if ($a_phone =~ /[^0-9\-]/) { &error("電話番号は半角数字で入力して下さい"); } #if ($a_phone!~ /^\d{2,5}-\d{1,4}-\d{4}$/) { &error("電話番号は半角数字でハイフォンで区切って入力して下さい"); } if ($a_email eq "") { &error("メールアドレスが入力されていません");} if ($a_email =~ /\s|\,/) { &error("メールアドレスの入力が不正です");} if ($a_email !~ /\b[-\w.]+@[-\w.]+\.[-\w]+\b/) { &error("メールアドレスは半角で正しくご入力ください");} if ($a_subtotal eq ''){&error ('購買額を入力して下さい。');} if ($a_subtotal =~ /\D/ ) { &error('購買額は半角数字で入力して下さい'); } if ($a_point eq ''){&error ('ポイント数を入力して下さい。');} if ($a_point =~ /\D/ ) { &error('ポイント数は半角数字で入力して下さい'); } open(LOG,"$logfile1") || &error("$logfile1を開けません"); @logs = ; close(LOG); foreach $log (@logs){ ($c_serial,$c_date,$c_namae,$c_post,$c_pref,$c_address,$c_phone,$c_email,$c_subtotal,$c_furigana,$c_shiharai,$c_namae2,$c_furigana2,$c_post2,$c_address2,$c_phone2,$c_passwd,$c_pref2,$c_mailmgz,$c_point) = split(/,/,$log); # chop $c_mailmgz;#行末に「,」を挿入(02/09/10) # if($a_phone eq $c_phone){&error("この電話番号[$a_phone]はすでに登録されています");} if($a_phone eq $c_phone){ $a_data = "$a_serial,$a_date,$a_namae,$a_post,$a_pref,$a_address,$a_phone,$a_email,$a_subtotal,$c_furigana,$c_shiharai,$c_namae2,$c_furigana2,$c_post2,$c_address2,$c_phone2,$a_passwd,$c_pref2,$a_mailmgz,$a_point,\n"; }else{ $a_data = "$log"; } push(@new,$a_data); } &lock; open(LOG, "+< $logfile1") || &error("$logfile1に書き込めません","unlock"); truncate(LOG,0); seek(LOG,0,0); print LOG @new; close(LOG); &unlock; &header("管理モード"); print<<"EOF";


更新しました

EOF &footer; exit; } ############################## #会員登録変更フォーム2(顧客用) ############################## sub edit_form2{ if ($phone eq '') { &error('電話番号を入力して下さい');} if ($passwd eq '') { &error('パスワードを入力して下さい');} open(LOG,"$logfile1") || &error("$logfile1を開けません"); @logs = ; close(LOG); $flag=0; foreach $log (@logs){ ($e_serial,$e_date,$e_namae,$e_post,$e_pref,$e_address,$e_phone,$e_email,$e_subtotal,$e_furigana,$e_shiharai,$e_namae2,$e_furigana2,$e_post2,$e_address2,$e_phone2,$e_passwd,$e_pref2,$e_mailmgz,$e_point) = split(/,/,$log); # chop $c_mailmgz;#行末に「,」を挿入(02/09/10) if($passwd eq $e_passwd && $phone eq $e_phone){$flag=1;last;} } if ($flag == 0) { &error('登録情報を検索しましたが該当するデータはありませんでした。'); } if ($e_mailmgz eq "yes") { $checkedmmyes="checked";} elsif ($e_mailmgz eq "no") { $checkedmmno="checked";} &header("edit_form"); print<<"EOF";
home
$shop

登録情報変更・ポイント確認
>>トップページに戻る

現在お持ちのポイント:$e_point
登録情報編集フォーム
名前
パスワード (英数半角10字以内)
郵便番号 (半角でご記入ください)例:000-0000
県名
住所
電話番号 $e_phone
Email (半角でご記入ください)
メール連絡 希望する  希望しない

EOF &footer; } ###################### #会員登録変更2(顧客用) ###################### sub edit2{ #&error("サンプルのため新規作成できません"); #if ($a_serial eq ''){&error ('シリアルNOを入力して下さい。');} #if ($a_serial =~ /\D/ ) { &error('シリアルNOは半角数字で入力して下さい'); } #if ($a_date eq '') { &error('最終販売日を入力して下さい');} if ($a_namae eq '') { &error('顧客名を入力して下さい');} if ($a_passwd eq '') { &error('パスワードを入力して下さい');} if ($a_passwd !~ /\w+/) { &error("パスワードの入力が不正です"); } if ($a_post eq ''){&error ('郵便番号を入力して下さい。');} if ($a_post !~ /^\d{3}-\d{4}$/) { &error("郵便番号の入力が不正です"); } if ($a_pref eq 'none'){&error ('県名を選択して下さい。');} if ($a_address eq ''){&error ('住所を入力して下さい。');} #if ($a_phone eq ''){&error ('電話番号を入力して下さい。');} #if ($a_phone =~ /[^0-9\-]/) { &error("電話番号は半角数字で入力して下さい"); } #if ($a_phone!~ /^\d{2,5}-\d{1,4}-\d{4}$/) { &error("電話番号は半角数字でハイフォンで区切って入力して下さい"); } if ($a_email eq "") { &error("メールアドレスが入力されていません");} if ($a_email =~ /\s|\,/) { &error("メールアドレスの入力が不正です");} if ($a_email !~ /\b[-\w.]+@[-\w.]+\.[-\w]+\b/) { &error("メールアドレスは半角で正しくご入力ください");} #if ($a_subtotal eq ''){&error ('購買額を入力して下さい。');} #if ($a_subtotal =~ /\D/ ) { &error('購買額は半角数字で入力して下さい'); } open(LOG,"$logfile1") || &error("$logfile1を開けません"); @logs = ; close(LOG); foreach $log (@logs){ ($c_serial,$c_date,$c_namae,$c_post,$c_pref,$c_address,$c_phone,$c_email,$c_subtotal,$c_furigana,$c_shiharai,$c_namae2,$c_furigana2,$c_post2,$c_address2,$c_phone2,$c_passwd,$c_pref2,$c_mailmgz,$c_point) = split(/,/,$log); # chop $c_mailmgz;#行末に「,」を挿入(02/09/10) # if($a_phone eq $c_phone){&error("この電話番号[$a_phone]はすでに登録されています");} if($a_phone eq $c_phone){ $a_data = "$c_serial,$c_date,$a_namae,$a_post,$a_pref,$a_address,$a_phone,$a_email,$c_subtotal,$c_furigana,$c_shiharai,$c_namae2,$c_furigana2,$c_post2,$c_address2,$c_phone2,$a_passwd,$c_pref2,$a_mailmgz,$c_point,\n"; }else{ $a_data = "$log"; } push(@new,$a_data); } &lock; open(LOG, "+< $logfile1") || &error("$logfile1に書き込めません","unlock"); truncate(LOG,0); seek(LOG,0,0); print LOG @new; close(LOG); &unlock; &header("管理モード"); print<<"EOF";


更新しました

トップページに戻る


EOF &footer; exit; } ####################### #登録情報削除(管理用) ####################### sub delete_log{ #&error("サンプルのため削除できません"); if (@DEL==0 ) {&error("削除する項目にチェックを入れてください");} open(LOG,"$logfile1") || &error("$logfile1を開けません"); @logs = ; close(LOG); @new=(); foreach $log (@logs){ $flag=0; ($serial,$date,$namae,$post,$pref,$address,$phone,$email,$subtotal,$furigana,$shiharai,$namae2,$furigana2,$post2,$address2,$phone2,$passwd,$pref2,$mailmgz,$point) = split(/,/,$log); # chop $mailmgz;#行末に「,」を挿入(02/09/10) foreach $x (@DEL) { if ($phone eq "$x") { $flag=1; last; } } if ($flag == 0) { push(@new,$log); } } &lock; open(LOG,"+< $logfile1") || &error("$logfile1に書き込めません","unlock"); truncate(LOG,0); seek(LOG,0,0); print LOG @new; close(LOG); &unlock; &header("顧客管理"); print<<"EOF";


データを削除しました


EOF &footer; exit; } ####################### #登録情報削除(顧客用) ####################### sub delete_log2{ if ($phone eq '') { &error('電話番号を入力して下さい');} if ($passwd eq '') { &error('パスワードを入力して下さい');} #&error("サンプルのため削除できません"); open(LOG,"$logfile1") || &error("$logfile1を開けません"); @logs = ; close(LOG); @new=(); $flag=0; foreach $log (@logs){ ($d_serial,$d_date,$d_namae,$d_post,$d_pref,$d_address,$d_phone,$d_email,$d_subtotal,$d_furigana,$d_shiharai,$d_namae2,$d_furigana2,$d_post2,$d_address2,$d_phone2,$d_passwd,$d_pref2,$d_mailmgz,$d_point) = split(/,/,$log); # chop $mailmgz;#行末に「,」を挿入(02/09/10) if($passwd eq $d_passwd && $phone eq $d_phone){$flag=1;next;} push(@new,$log); } if ($flag == 0) { &error('登録情報を検索しましたが該当するデータはありませんでした。'); } &lock; open(LOG,"+< $logfile1") || &error("$logfile1に書き込めません","unlock"); truncate(LOG,0); seek(LOG,0,0); print LOG @new; close(LOG); &unlock; &header("顧客管理"); print<<"EOF";


データを削除しました

トップページに戻る



EOF &footer; exit; } ########################### #新規登録フォーム(管理用) ########################### sub add_form{ &get_date; &header("add_form"); print<<"EOF";
home
$shop

 新規登録

新規登録フォーム
シリアルNO (最終販売日の年月日を / を入れずに半角でご記入ください) (一桁の日付は0をつけて20020101のようにして下さい)
最終販売日 (半角でご記入ください)
名前
パスワード (英数半角10字以内、非会員は空白)
郵便番号 (半角でご記入ください)例:000-0000
県名
住所
電話番号 (半角でご記入ください)例:000-000-0000
Email (半角でご記入ください)
メール連絡 希望する  希望しない
購買額  円(半角でご記入ください)
ポイント  (半角でご記入ください)

EOF &footer; } sub add{ #&error("サンプルのため新規作成できません"); if ($a_serial eq ''){&error ('シリアルNOを入力して下さい。');} if ($a_serial =~ /\D/ ) { &error('シリアルNOは半角数字で入力して下さい'); } if ($a_date eq '') { &error('最終販売日を入力して下さい');} if ($a_namae eq '') { &error('顧客名を入力して下さい');} #if ($a_passwd eq '') { &error('パスワードを入力して下さい');} if ($a_passwd){ if ($a_passwd !~ /\w+/) { &error("パスワードの入力が不正です"); } } if ($a_post eq ''){&error ('郵便番号を入力して下さい。');} if ($a_post !~ /^\d{3}-\d{4}$/) { &error("郵便番号の入力が不正です"); } if ($a_pref eq 'none'){&error ('県名を選択して下さい。');} if ($a_address eq ''){&error ('住所を入力して下さい。');} if ($a_phone eq ''){&error ('電話番号を入力して下さい。');} #if ($a_phone =~ /[^0-9\-]/) { &error("電話番号は半角数字で入力して下さい"); } if ($a_phone!~ /^\d{2,5}-\d{1,4}-\d{4}$/) { &error("電話番号は半角数字でハイフォンで区切って入力して下さい"); } if ($a_email eq "") { &error("メールアドレスが入力されていません");} if ($a_email =~ /\s|\,/) { &error("メールアドレスの入力が不正です");} if ($a_email !~ /\b[-\w.]+@[-\w.]+\.[-\w]+\b/) { &error("メールアドレスは半角で正しくご入力ください");} if ($a_subtotal eq ''){&error ('購買額を入力して下さい。');} if ($a_subtotal =~ /\D/ ) { &error('購買額は半角数字で入力して下さい'); } if ($a_point eq ''){&error ('ポイント数を入力して下さい。');} if ($a_point =~ /\D/ ) { &error('ポイント数は半角数字で入力して下さい'); } open(LOG,"$logfile1") || &error("$logfile1を開けません"); @logs = ; close(LOG); foreach $log (@logs){ ($c_serial,$c_date,$c_namae,$c_post,$c_pref,$c_address,$c_phone,$c_email,$c_subtotal,$c_furigana,$c_shiharai,$c_namae2,$c_furigana2,$c_post2,$c_address2,$c_phone2,$c_passwd,$c_pref2,$c_mailmgz,$c_point) = split(/,/,$log); # chop $c_mailmgz;#行末に「,」を挿入(02/09/10) if($a_phone eq $c_phone){&error("この電話番号[$a_phone]はすでに登録されています");} } $a_data = "$a_serial,$a_date,$a_namae,$a_post,$a_pref,$a_address,$a_phone,$a_email,$a_subtotal,$a_furigana,$a_shiharai,$a_namae2,$a_furigana2,$a_post2,$a_address2,$a_phone2,$a_passwd,$a_pref2,$a_mailmgz,$a_point,\n"; unshift(@logs,$a_data); &lock; open(LOG, "+< $logfile1") || &error("$logfile1に書き込めません","unlock"); truncate(LOG,0); seek(LOG,0,0); print LOG @logs; close(LOG); &unlock; &header("管理モード"); print<<"EOF";


登録しました

EOF &footer; exit; } ########################### #新規登録フォーム2(顧客用) ########################### sub add_form2{ &get_date; &header("add_form"); print<<"EOF";
home
$shop

新規登録
>>トップページに戻る

新規登録フォーム
名前
パスワード (英数半角10字以内)
郵便番号 (半角でご記入ください)例:000-0000
県名
住所
電話番号 (半角でご記入ください)例:000-000-0000
Email (半角でご記入ください)
メール連絡 希望する  希望しない

EOF &footer; } ################### #新規登録2(顧客用) ################### sub add2{ #&error("サンプルのため新規作成できません"); #if ($a_serial eq ''){&error ('シリアルNOを入力して下さい。');} #if ($a_serial =~ /\D/ ) { &error('シリアルNOは半角数字で入力して下さい'); } #if ($a_date eq '') { &error('最終販売日を入力して下さい');} if ($a_namae eq '') { &error('顧客名を入力して下さい');} if ($a_passwd eq '') { &error('パスワードを入力して下さい');} if ($a_passwd){ if ($a_passwd !~ /\w+/) { &error("パスワードの入力が不正です"); } } if ($a_post eq ''){&error ('郵便番号を入力して下さい。');} if ($a_post !~ /^\d{3}-\d{4}$/) { &error("郵便番号の入力が不正です"); } if ($a_pref eq 'none'){&error ('県名を選択して下さい。');} if ($a_address eq ''){&error ('住所を入力して下さい。');} if ($a_phone eq ''){&error ('電話番号を入力して下さい。');} #if ($a_phone =~ /[^0-9\-]/) { &error("電話番号は半角数字で入力して下さい"); } if ($a_phone!~ /^\d{2,5}-\d{1,4}-\d{4}$/) { &error("電話番号は半角数字でハイフォンで区切って入力して下さい"); } if ($a_email eq "") { &error("メールアドレスが入力されていません");} if ($a_email =~ /\s|\,/) { &error("メールアドレスの入力が不正です");} if ($a_email !~ /\b[-\w.]+@[-\w.]+\.[-\w]+\b/) { &error("メールアドレスは半角で正しくご入力ください");} #if ($a_subtotal eq ''){&error ('購買額を入力して下さい。');} #if ($a_subtotal =~ /\D/ ) { &error('購買額は半角数字で入力して下さい'); } open(LOG,"$logfile1") || &error("$logfile1を開けません"); @logs = ; close(LOG); @new=(); $exist=0; foreach $log (@logs){ ($c_serial,$c_date,$c_namae,$c_post,$c_pref,$c_address,$c_phone,$c_email,$c_subtotal,$c_furigana,$c_shiharai,$c_namae2,$c_furigana2,$c_post2,$c_address2,$c_phone2,$c_passwd,$c_pref2,$c_mailmgz,$c_point) = split(/,/,$log); # chop $c_mailmgz; if($a_phone eq $c_phone && $a_passwd eq $c_passwd){&error("すでに登録されています");} if($a_phone eq $c_phone){ $exist=1; $cdata = "$a_serial,$a_date,$a_namae,$a_post,$a_pref,$a_address,$a_phone,$a_email,$a_subtotal,$a_furigana,$a_shiharai,$a_namae2,$a_furigana2,$a_post2,$a_address2,$a_phone2,$a_passwd,$a_pref2,$a_mailmgz,0,\n";#行末に「,」を挿入(02/09/10) push(@new,$cdata); }else{ push(@new,$log); } } if ($exist==0){ $cdata3 = "$a_serial,$a_date,$a_namae,$a_post,$a_pref,$a_address,$a_phone,$a_email,$a_subtotal,$a_furigana,$a_shiharai,$a_namae2,$a_furigana2,$a_post2,$a_address2,$a_phone2,$a_passwd,$a_pref2,$a_mailmgz,0,\n";#行末に「,」を挿入(02/09/10) unshift(@new,$cdata3); } &lock; open(LOG, "+< $logfile1") || &error("$logfile1に書き込めません","unlock"); truncate(LOG,0); seek(LOG,0,0); print LOG @new; close(LOG); &unlock; &header("管理モード"); print<<"EOF";


登録しました

トップページに戻る


EOF &footer; exit; } sub add2_bak{ #&error("サンプルのため新規作成できません"); if ($a_serial eq ''){&error ('シリアルNOを入力して下さい。');} if ($a_serial =~ /\D/ ) { &error('シリアルNOは半角数字で入力して下さい'); } if ($a_date eq '') { &error('最終販売日を入力して下さい');} if ($a_namae eq '') { &error('顧客名を入力して下さい');} if ($a_passwd eq '') { &error('パスワードを入力して下さい');} if ($a_passwd){ if ($a_passwd !~ /\w+/) { &error("パスワードの入力が不正です"); } } if ($a_post eq ''){&error ('郵便番号を入力して下さい。');} if ($a_post !~ /^\d{3}-\d{4}$/) { &error("郵便番号の入力が不正です"); } if ($a_pref eq 'none'){&error ('県名を選択して下さい。');} if ($a_address eq ''){&error ('住所を入力して下さい。');} if ($a_phone eq ''){&error ('電話番号を入力して下さい。');} #if ($a_phone =~ /[^0-9\-]/) { &error("電話番号は半角数字で入力して下さい"); } if ($a_phone!~ /^\d{2,5}-\d{1,4}-\d{4}$/) { &error("電話番号は半角数字でハイフォンで区切って入力して下さい"); } if ($a_email eq "") { &error("メールアドレスが入力されていません");} if ($a_email =~ /\s|\,/) { &error("メールアドレスの入力が不正です");} if ($a_email !~ /\b[-\w.]+@[-\w.]+\.[-\w]+\b/) { &error("メールアドレスは半角で正しくご入力ください");} if ($a_subtotal eq ''){&error ('購買額を入力して下さい。');} if ($a_subtotal =~ /\D/ ) { &error('購買額は半角数字で入力して下さい'); } open(LOG,"$logfile1") || &error("$logfile1を開けません"); @logs = ; close(LOG); foreach $log (@logs){ ($c_serial,$c_date,$c_namae,$c_post,$c_pref,$c_address,$c_phone,$c_email,$c_subtotal,$c_furigana,$c_shiharai,$c_namae2,$c_furigana2,$c_post2,$c_address2,$c_phone2,$c_passwd,$c_pref2,$c_mailmgz,$c_point) = split(/,/,$log); # chop $c_mailmgz;#行末に「,」を挿入(02/09/10) if($a_phone eq $c_phone){&error("この電話番号[$a_phone]はすでに登録されています");} } $a_data = "$a_serial,$a_date,$a_namae,$a_post,$a_pref,$a_address,$a_phone,$a_email,$a_subtotal,$a_furigana,$a_shiharai,$a_namae2,$a_furigana2,$a_post2,$a_address2,$a_phone2,$a_passwd,$a_pref2,$a_mailmgz,0,\n"; unshift(@logs,$a_data); &lock; open(LOG, "+< $logfile1") || &error("$logfile1に書き込めません","unlock"); truncate(LOG,0); seek(LOG,0,0); print LOG @logs; close(LOG); &unlock; &header("管理モード"); print<<"EOF";


登録しました

トップページに戻る


EOF &footer; exit; } sub decode_form{ if($ENV{'REQUEST_METHOD'}eq"POST"){ read(STDIN,$buffer,$ENV{'CONTENT_LENGTH'}); }else { $buffer = $ENV{'QUERY_STRING'}; } # if($buffer>5120){&error("投稿量が大きすぎます");} @pairs = split(/&/,$buffer); foreach $pair (@pairs) { ($name, $value) = split(/=/, $pair); $name =~ tr/+/ /; $name =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; $value =~ tr/+/ /; $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; # 記録するデータはsjisに統一する &jcode'convert(*name,'sjis'); &jcode'convert(*value,'sjis'); $value =~ s/,//g; #改行が入ると別のデータになる $value =~ s/\r\n/
/g; $value =~ s/\r/
/g; $value =~ s/\n/
/g; #「"」「'」を削除 $value =~ s/\"//g; $value =~ s/\'//g; if ($name eq "del") { push(@DEL,$value); } $in{$name} = $value; } $mode = $in{'mode'}; $sort = $in{'sort'}; $phone = $in{'phone'}; # $e_phone = $in{'e_phone'}; $passwd = $in{'passwd'}; $a_serial = $in{'a_serial'}; $a_date = $in{'a_date'}; $a_namae = $in{'a_namae'}; $a_passwd = $in{'a_passwd'}; $a_post = $in{'a_post'}; $a_pref = $in{'a_pref'}; $a_address = $in{'a_address'}; $a_phone = $in{'a_phone'}; $a_email = $in{'a_email'}; $a_mailmgz = $in{'a_mailmgz'}; $a_subtotal = $in{'a_subtotal'}; $a_point = $in{'a_point'}; } #------------------------------------- #----エラー処理 #------------------------------------- sub kanri_error{ &header; print<<"EOF";


$_[0]



EOF &footer; exit; }