#!/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";
 |
 |



 |

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


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

 |

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


 |

EOF
&footer;
}
sub del_check{
&header("会員登録抹消");
print<<"EOF";


 |

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";


| 削除 |
編集 |
最終販売日 |
氏名 |
パス |
県名 |
住所 |
電話番号 |
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"$date | \n";
print"$namae | \n";
print"$passwd | \n";
print"$pref | \n";
print"$address | \n";
print"$phone | \n";
print"$email | \n";
print"\\$subtotal | \n";
print"
\n";
}
print <<"EOF";
 |

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";
 |
 |


 |

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";
 |
 |


 |

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";
 |
 |


 |

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";
 |
 |


 |

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;
}