#!/usr/bin/perl #設置の方法によってパスの変更が必要です。 # jcode.plへのパス require './jcode.pl'; # cgi-lib.plへのパス require './cgi-lib.pl'; # MIMEコード変換ライブラリ require './mimew.pl'; # 各種設定ファイル require '../set/conf_test.pl'; # カテゴリー設定ファイル require '../set/shop_class.pl'; # 送料設定ファイル require '../set/souryoufile.pl'; # メール文書ファイル require '../set/mail_set.pl'; #ショッピングカート共通部分の設定ファイル require '../set/shop_set.pl'; #=====設定終了=================================================================== &ReadParse; while (($key,$val) = each %in) { # &jcode'convert(*val, "sjis"); $form{$key} = $val; $val =~ s/<>//g; if($form{'mode'} eq 'adm4' || $form{'mode'} eq 'order_form' || $form{'mode'} eq 'order_mail'){ $val =~ s/"/\"/g; if ($key eq "MESS" || $key eq "setumei") { $val =~ s/<//g; $val =~ s/
/\n/g; $val =~ s/\.\n/\. \n/g; }else{ $val =~ s//>/g; $val =~ s/\r\n//g; $val =~ s/\r//g; $val =~ s/\n//g; $val =~ s/\s//g; } }else{ $val =~ s/\"/"/g; $val =~ s/\0/ /g; if ($key eq "MESS" || $key eq "setumei" || $key eq "setumei2" || $key eq "setumei3") { $val =~ s/\r\n/
/g; $val =~ s/\r/
/g; $val =~ s/\n/
/g; if ($val =~ /
$/) { while ($val =~ /
$/) { $val =~ s/
$//g; } } } else { $val =~ s//>/g; $val =~ s/\r\n//g; $val =~ s/\r//g; $val =~ s/\n//g; $val =~ s/\s//g; } } $in{$key} = $val; } #=================注文加算============================================ if($in{'order'} eq ""){ # Cookieの値を得る &getCookie(); $in{'order'} = $COOKIE{'ORDER'}; } $order=$in{'order'}; $order_new =$in{'g_no'}.",".$in{'op1'}.",".$in{'op2'}; if($in{'amount'} ne "" and $in{'amount'} ne "0"){ if($order eq ""){ $order =$in{'g_no'}.",".$in{'op1'}.",".$in{'op2'}.":".$in{'amount'}; }else{ @order_1 = split(/!/,$order); foreach (@order_1) { ($i,$j) = split(/:/,$_); if($i eq $order_new){ $j = $j + $in{"amount"}; if($order_2 eq ""){ $order_2 =$order_new.":".$j; }else{ $order_2 .="!".$order_new.":".$j; } $k =1; }else{ if($order_2 eq ""){ $order_2 =$_; }else{ $order_2 .="!".$_; } } } if($k ne 1){ $order .="!".$in{'g_no'}.",".$in{'op1'}.",".$in{'op2'}.":".$in{'amount'}; }else{ $order =$order_2; } } $in{'order'}=$order; } #=================注文減算============================================ if($in{'del_no'} ne ""){ $order =""; @order_1 = split(/!/,$in{'order'}); foreach (@order_1) { ($s,$t) = split(/:/,$_); if($s eq $in{'del_no'}){next;} if($order eq ""){ $order = $s.":".$t; }else{ $order .="!".$s.":".$t; } } $in{'order'}=$order; } #クッキーの設定 print &setCookie_0("ORDER", $order); # 設定ファイル==================================================================== if ( $in{'mode'} eq 'order_mail' ) { $in{'order'} =''; require '../set/shop_set.pl'; $in{'order'}=$order; }else{ require '../set/shop_set.pl'; } #===== 戻り先======================================================== $save_data="$script?&keyword=$in{'keyword'}&FF=$in{'FF'}&class=$in{'class'}"; $modoru_adding = "$save_data&mode=adm2&pass=$adm_pass"; $modoru_dell = "$save_data&mode=adm3&pass=$adm_pass"; $modoru_renew = "$save_data&mode=adm4&pass=$adm_pass"; $modoru_goods ="$script?order=$in{'order'}&class=$in{'class'}&keyword=$in{'keyword'}&FF=$in{'FF'}&price_sort=$in{'price_sort'}"; $modoru_goods_2 ="$script?class=$in{'class'}&keyword=$in{'keyword'}&FF=$in{'FF'}&price_sort=$in{'price_sort'}"; $modoru_goods_end ="$script?class=$in{'class'}&keyword=$in{'keyword'}&FF=$in{'FF'}&price_sort=$in{'price_sort'}"; #==================================================================== if (!open(IN,"$data_file")) { &error('データベース読取エラー','復旧をお待ちください.'); } @BASE = ; close(IN); if($in{'price_sort'} ne 1){ @BASE = reverse @BASE; }else{ @BASE = sort { (split(/\<\>/,$a))[8] <=> (split(/\<\>/,$b))[8] } @BASE; } $hit = 0; $next_num = ''; $over_no = 0; if($in{'mode'} eq 'adm3' or $in{'mode'} eq 'addell'){ $page =$page_dell; } #=========消費税のの扱い==================== if($tax_flag eq '' or $tax_flag == 0){ $tax_set ='(税別)'; $br_tax_set ='
(税別)'; }elsif($tax_flag == 1){ $tax_set ='(税込)'; $br_tax_set ='
(税込)'; $syouhi_tax =0; }else{ $syouhi_tax =0; } #==================================================================== if ( $in{'mode'} eq 'adding' ) { &adding; exit;} if ( $in{'mode'} eq 'renew' ) { &renew; exit;} if ( $in{'mode'} eq 'dell' ) { &dell; exit;} if ( $in{'mode'} eq 'look' ) { &look; exit;} if ( $in{'mode'} eq 'order_form' ) { &order_form; exit;} if ( $in{'mode'} eq 'sure' ) { &sure; exit;} if ( $in{'mode'} eq 'order_mail' ) { &order_mail; exit;} #=====TEST中========================================================= if ( $in{'mode'} eq 'adm5' ) { &csv_adm; exit;} if ( $in{'mode'} eq 'adm6' ) { &csv_adm_ok; exit;} if ( $in{'mode'} eq 'adm7' ) { &csv_new; exit;} #==================================================================== # Cookieの値を得る &getCookie(); $classmei = $COOKIE{'BUNRUIMEI'}; $ff_no = $COOKIE{'FF'}; if($ff_no eq ''){$ff_no =0;} $pas_word = $COOKIE{'WORD'}; if($in{'class'} ne ""){ $classmei = $in{'class'}; print &setCookie("BUNRUIMEI", $classmei); } if($in{'FF'} ne ""){ $ff_no = $in{'FF'}; print &setCookie('FF', $ff_no); } if($in{'keyword'} ne "" or $in{'superkey'} eq "1"){ $pas_word = $in{'keyword'}; print &setCookie('WORD', $pas_word); } $in{'keyword'} = $pas_word; $in{'class'}=$classmei; #=================================================================== $data_su= 0; $data_ff =0; foreach $num (0 .. $#BASE) { $data = $data2 = $BASE[$num]; &jcode'convert(*data,'sjis'); ($goods_no,$name,$artist,$kigou,$option,$option2,$class,$setumei,$fcolor,$price,$tani,$zaiko,$limit,$picture,$bikou,$nensiki,$syaken,$haikiryou,$door,$handle,$gaisou,$sonota,$recycling,$syuhuku,$hosyotuki,$seibituki,$icon) = split(/\<\>/,$data); if($pas_word ne "") { # 入力内容を整理 $word = $pas_word; $word =~ s/ / /g; $word =~ s/\t/ /g; @pairs = split(/ /,$word); ($a,$b) =split(/\//,$class); &class_name_get(); # 検索処理(検索対象の指定) $flag_k = 0; foreach $pair (@pairs){ # if (index($kigou,$pair) >= 0) { # next; #kaigyou }els if (index($name,$pair) >= 0) { next; }elsif (index($artist,$pair) >= 0) { next; # }elsif (index($goods_no,$pair) >= 0) { # next; }elsif (index($class_B,$pair) >= 0) { next; }elsif (index($class_S,$pair) >= 0) { next; }elsif (index($option,$pair) >= 0) { next; }elsif (index($setumei,$pair) >= 0) { next; }elsif (index($bikou,$pair) >= 0) { next; # }elsif (index($price,$pair) >= 0) { # next; # }elsif (index($class,$pair) >= 0) { # next; } $flag_k = 1; last; } if ($flag_k == 1) { next; } } if ($classmei ne "all" && $classmei ne "") { ($a1,$a2) =split(/\//,$class); ($b1,$b2) =split(/\//,$classmei); if ($a1 ne $b1) { next; } if ($b2 ne ''){ if($a2 ne $b2){ next;} } } if ($in{'id'} ne '' && ($in{'mode'} eq 'adm4' or $in{'mode'} eq 'p_wide')) { if ($goods_no eq $in{'id'}) { push(@NEW,$data2); last; } else { next; } } $data_su++; # 検索終了処理 if ($hit == $page) { $next_num = $data_ff; $over_no ++; $hit++; next; } elsif($hit < $page && $data_ff >= $ff_no){ push(@NEW,$data2); $hit++; }elsif($hit > $page && $data_ff >= $ff_no){ $over_no ++; } $data_ff ++; } if($over_no > $page){ $over_no = $page; } #========================================================================================= if ( $in{'mode'} eq 'adm1' ) { &adm1; exit;} elsif ( $in{'mode'} eq 'adm2' ) { &adm_add; exit;} elsif ( $in{'mode'} eq 'adm3' ) { &adm_dell; exit;} elsif ( $in{'mode'} eq 'adm4' ) { &adm_renew; exit;} elsif ( $in{'mode'} eq 'p_wide' ) { &p_wide; exit;} else { &shop_form; exit;} #=============================画像の拡大(詳細画面)=========================================== sub p_wide { &html_header(); if($zaiko eq ""){ $zaiko = 10000000; } if($limit eq ""){ $limit =100000; } $kosuu_setting = ""; foreach ( @kosuu_set ) { if($_ >$limit or $_ >$zaiko){ last; }else{ $kosuu_setting .= ""; } } if($kosuu_setting eq ""){ $kosuu_setting = "$tani_set"; }else{ $kosuu_setting = "$tani_set"; } $folder="$dir_p/order.gif"; if($zaiko ne ''){ $get_setting = ""; }else{ $get_setting = $zaiko3; } ($pic1,$pic2,$pic3,$pic4,$pic5,$pici,$picj) =split(/\|/,$picture); if($pic1 eq ""){ $pic1 ="$dir_p/space2.gif"; } if($pic2 eq ""){ $pic2 ="$dir_p/space2.gif"; } if($pic3 eq ""){ $pic3 ="$dir_p/space2.gif"; } if($pic4 eq ""){ $pic4 ="$dir_p/space2.gif"; } if($pic5 eq ""){ $pic5 ="$dir_p/space2.gif"; } ($setumei,$setumei2) =split(/\|\|/,$setumei); @option = split(/\:/,$option); $i = 0; $option_set = ""; while($i < $option_no) { ($op_k[$i],$op_m[$i]) =split(/\,/,$option[$i]); if($op_k[$i] eq ""){ $i++; next;} $option_set = $option_set."\n"; $i++; } if($option_set ne ""){ $option_set = ""; }else{ $option_set ="\ "; } @option2 = split(/\:/,$option2); $i = 0; $option2_set = ""; while($i < $option2_no) { ($op2_k[$i],$op2_m[$i]) =split(/\,/,$option2[$i]); if($op2_k[$i] eq ""){ $i++; next;} $option2_set = $option2_set."\n"; $i++; } if($option2_set ne ""){ $option2_set = ""; }else{ $option2_set ="\ "; } ($icon1,$icon2,$icon3,$icon4,$icon5,$icon6,$icon7,$icon8,$icon9,$icon11,$icon12,$icon13,$icon14,$icon15,$icon16,$icon17,$icon18,$icon19,$icon20,$icon21,$icon22,$icon23,$icon24,$icon25,$icon26,$icon27,$icon28,$icon29,$icon30,$icon31,$icon32,$icon33,$icon34,$icon35,$icon36,$icon37,$icon38,$icon39,$icon40,$icon41,$icon42,$icon43,$icon44,$icon45,$icon46,$icon47,$icon48,$icon49,$icon50,$icon51,$icon52,$icon53,$icon54,$icon55,$icon56,$icon57,$icon58,$icon59,$icon60,$icon61,$icon62,$icon63,$icon64,$icon65) =split(/\|/,$icon); if($icon1 eq ""){$icon_set = ""} print <<"EOF";
EOF 1 while $price =~ s/(.*\d)(\d\d\d)/$1,$2/g; #桁カンマを入れる処理 print <<"EOF";
商品名$name
$maker$artist
商品ID$kigou
商品の説明 $setumei2

販売価格$price円$tax_set
在庫数$zaiko2


$option_set\  $option2_set\ 注文数 $kosuu_setting$tani \  $get_setting
上記のサムネール画像をクリックすると
画像が切り替わります。
EOF print <<"EOF";
■戻る
EOF print "$foot\n" ; print "\n" ; print "\n" ; } #=============================注文メール================================================= sub order_mail { # タイムゾーンを日本時間に合わせる $ENV{'TZ'} = "JST-9"; $times = time; ($sec,$min,$hour,$day,$month,$year,$wday,$Days,$dmy) = localtime($times); $month = $month +1; $year = $year + 1900; $year_m_d = "$year"."年"."$month"."月"."$day"."日"; $year_m_d2 = "$year"."/"."$month"."/"."$day"; if($in{'d_time'}){ $in{'MESS'} = "[配達時間指定:$in{'d_time'}]\n"."$in{'MESS'}"; } $order_log=""; # ロック処理 if ($lockkey ne 0) { &lock_log(); } open (IN,"$data_file") || &error('オープンエラー1','指定された書込みファイルが開けません。'); @BASE = ; close (IN); #データチェック $order=$in{'order'}; &keisan(); foreach $data ( @BASE ) { ($goods_no,$name,$artist,$kigou,$option,$option2,$class,$setumei,$fcolor,$price,$tani,$zaiko,$limit,$tail,$bikou) = split(/\<\>/,$data); @order_1 = split(/!/,$in{'order'}); foreach (@order_1) { ($s,$t) = split(/:/,$_); ($a,$b,$c) = split(/\,/,$s); if ( $goods_no == $a ) { if($zaiko ne ''){ $zaiko =$zaiko -$t; #在庫数更新 } $data = "$goods_no<>$name<>$artist<>$kigou<>$option<>$option2<>$class<>$setumei<>$fcolor<>$price<>$tani<>$zaiko<>$limit<>$tail<>$bikou"; } } push (@NEW,$data); } open (OUT,">$data_file") || &error('オープンエラー2','指定された書込みファイルが開けません。'); print OUT (@NEW); close (OUT); open (IN,"$NO_file") || &error('オープンエラー3','指定された書込みファイル【$NO_file】が開けません。'); $order_max = ; close (IN); if($order_max eq ""){$order_max = 0;} $order_no = $order_max + 1; open (OUT,">$NO_file") || &error('オープンエラー4','指定された書込みファイルが開けません。'); print OUT "$order_no"; close (OUT); # ファイルロック解除 if (-e $loglock) { unlink($loglock); } $souryou_csv=$in{'souryou'}; $mailto ="$in{'MAIL'}"; $fromname =$shop_name; $frommail =$shop_mail; $subject =$mail_subject; &mail_make(); &mail_send(); $mailto =$shop_mail; $fromname =$shop_name;; $frommail =$shop_mail; $subject =$mail_subject; $report="次の方にメールを送信しました。"."\n "."$in{'SIMEI'}"."\n "."$in{'MAIL'}"."\n"; $mailbody=$report.$mailbody2; if($csv_tenpu){ &mail_send_tenpu(); &csv_unlock(); }else{ &mail_send(); } #注文完了メッセージ==== #クッキーの設定 print &setCookie_0("ORDER", ""); $in{'order'} =''; &html_header(); print <<"EOF";
商品の検索 >> かごの中 >> ご注文 >> ご注文内容のご確認 >> 完了
EOF print <<"EOF";
■商品画面へ戻る
ご注文ありがとうございました

$in{"SIMEI"}$end_mess

ありがとうございました

EOF print "$foot\n" ; print "\n" ; print "\n" ; } #=======ログ及びCSV形式のファイルの作成====== sub csv_make{ #=============ログの作成============= if($order_log){ $order_log .=":"."$k_no[$data_no],$k_name[$data_no],$k_artist[$data_no],$option_1,$option_2,$kigou,$k_price[$data_no],$k_amount[$data_no],$k_total[$data_no]"; }else{ $order_log .="$k_no[$data_no],$k_name[$data_no],$k_artist[$data_no],$option_1,$option_2,$kigou,$k_price[$data_no],$k_amount[$data_no],$k_total[$data_no]"; } #=============csvデータ=============== #データ構成 # 顧客管理(user.csv) # 注文番号,氏名,メール,郵便番号,住所,電話,送金方法,機種,連絡事項,氏名2,郵便番号2,住所2,電話2 # 販売管理(sale.csv) # 注文番号,日付,商品番号,商品名,アーティスト,オプション1,オプション2,商品記号,単価,注文数,合計,送料,代引き料 $mess =$in{'MESS'}; $mess =~ s/\r\n/\ /g; $mess =~ s/\r/\ /g; $mess =~ s/\n/\ /g; if($csv_tenpu eq 0){return;} if($option_1 eq ""){$option_1 = "-";} if($option_2 eq ""){$option_2 = "-";} # 顧客管理用csvデータ open (OUT,">$file_user") || &error('オープンエラー5','指定された書込みファイルが開けません。'); print OUT "$order_no,$in{'SIMEI'},$in{'MAIL'},$in{'POST'},$in{'ADDR'},$in{'TEL'},$in{'METHOD'},PC,$mess,$in{'SIMEI2'},$in{'POST2'},$in{'ADDR2'},$in{'TEL2'}"; print OUT "\n"; close (OUT); # 販売管理用csvデータ open (OUT,">$file_sale") || &error('オープンエラー6','指定された書込みファイルが開けません。'); $data = "$order_no,$year_m_d2,$k_no[$data_no],$k_name[$data_no],$k_artist[$data_no],$option_1,$option_2,$kigou,$k_price[$data_no],$k_amount[$data_no],$k_total[$data_no],$souryou_csv,$daibiki_add_csv\n"; push (@SALE_DATA,$data) ; print OUT @SALE_DATA; close (OUT); $souryou_csv =''; $daibiki_add_csv =''; } #======csvファイル削除========================= sub csv_unlock{ if (-e "$file_user") { unlink("$file_user"); } if (-e "$file_sale") { unlink("$file_sale"); } } #=======注文ログファイルへの追加=============== sub put_log{ open (OUT,">>$log_file") || &error('オープンエラー7','ログファイルが開けません。'); print OUT "$order_no,$year_m_d2,<>$order_log,$zaiko<>$all_total_log,$tax_log,$in{'souryou'},$sougoukei_log,$in{'METHOD'},$daibiki_add<>$in{'SIMEI'},$in{'MAIL'},$in{'POST'},$in{'ADDR'},$in{'TEL'},PC,$mess,$in{'SIMEI2'},$in{'POST2'},$in{'ADDR2'},$in{'TEL2'}\n"; close (OUT); open (OUT,">>$log_file2") || &error('オープンエラー7','ログファイルが開けません。'); print OUT "$order_no,$year_m_d2,<>$order_log,$zaiko<>$all_total_log,$tax_log,$in{'souryou'},$sougoukei_log,$in{'METHOD'},$daibiki_add<>$in{'SIMEI'},$in{'MAIL'},$in{'POST'},$in{'ADDR'},$in{'TEL'},PC,$mess,$in{'SIMEI2'},$in{'POST2'},$in{'ADDR2'},$in{'TEL2'}\n"; close (OUT); } #=======メールを作成する============= # sub mail_make{ $tax = int($all_total * $syouhi_tax); $tax_total =$tax + $all_total; $sougoukei =$tax_total +$in{"souryou"}; $souryou_set =$in{"souryou"}; $sougoukei_2 =$sougoukei; #====消費税の扱い===== if($tax_flag eq '' or $tax_flag == 0){ $syouhizei_set ="【消費税】$tax円\n"; } #====代引き=========== &daibikikeisann(); &collectkeisann(); if($in{'METHOD'} eq '代引き'){ $sougoukei_2 =$sougoukei +$daibiki_add; 1 while $sougoukei_2 =~ s/(.*\d)(\d\d\d)/$1,$2/g; #桁カンマを入れる処理 $daibiki_add_set ="\n【代引き手数料】$daibiki_add円\n【代引き手数料を含めたお支払い総額】$sougoukei_2円\n"; $method_set ="$daibiki_mess"."商品到着時に別途代引き手数料$daibiki_add円が必要です。\n"; }elsif($in{'METHOD'} eq 'e-コレクト'){ $sougoukei_2 =$sougoukei +$collect_add; 1 while $sougoukei_2 =~ s/(.*\d)(\d\d\d)/$1,$2/g; #桁カンマを入れる処理 $daibiki_add_set ="\n【e-コレクト手数料】$collect_add円\n【e-コレクト手数料を含めたお支払い総額】$sougoukei_2円\n"; $method_set ="$collect_mess"."商品到着時に別途e-コレクト手数料$collect_add円が必要です。\n"; }elsif($in{'METHOD'} eq '郵便振替'){ $yuubin ="CHECKED"; $method_set =$hurikae_mess; }else{ $bank ="CHECKED"; $method_set =$hurikomi_mess; } $all_total_log =$all_total; $tax_log=$tax; $sougoukei_log=$sougoukei; if($in{'METHOD'} eq '代引き'){ $daibiki_add_csv =$daibiki_add; }elsif($in{'METHOD'} eq 'e-コレクト'){ $daibiki_add_csv =$collect_add; } 1 while $souryou_set =~ s/(.*\d)(\d\d\d)/$1,$2/g; #桁カンマを入れる処理 1 while $tax =~ s/(.*\d)(\d\d\d)/$1,$2/g; #桁カンマを入れる処理 1 while $all_total =~ s/(.*\d)(\d\d\d)/$1,$2/g; #桁カンマを入れる処理 1 while $sougoukei =~ s/(.*\d)(\d\d\d)/$1,$2/g; #桁カンマを入れる処理 @order_1 = split(/!/,$order); $data_no =0; foreach (0..$all_no) { ($s,$t) = split(/:/,$order_1[$_]); ($a,$b,$c) = split(/\,/,$s); $kigou = $k_id[$_]; if($b ne ""){ $kigou .="-".$b; } if($c ne ""){ $kigou .="-".$c; } @opt = split(/\:/,$k_option[$_]); $i = 0; $option_set =""; $option_1 =""; while($i < $option_no) { ($op_k[$i],$op_m[$i]) =split(/\,/,$opt[$i]); if($op_k[$i] eq "" or $op_k[$i] ne $b){ $i++; next;} $option_set ="/". $op_m[$i]; $option_1=$op_m[$i]; last; } @opt2 = split(/\:/,$k_option2[$_]); $i = 0; $option2_set =""; $option_2 =""; while($i < $option2_no) { ($op2_k[$i],$op2_m[$i]) =split(/\,/,$opt2[$i]); if($op2_k[$i] eq "" or $op2_k[$i] ne $c){ $i++; next;} $option2_set = "/".$op2_m[$i]; $option_2=$op2_m[$i]; last; } #==logデータ及びcsvデータの作成=== &csv_make(); #================================= 1 while $k_price[$_] =~ s/(.*\d)(\d\d\d)/$1,$2/g; #桁カンマを入れる処理 1 while $k_total[$_] =~ s/(.*\d)(\d\d\d)/$1,$2/g; #桁カンマを入れる処理 $hikae .="[$k_no[$_]]\ \ $k_name[$_]\n\ \ \ \ \ \ \ \ \ \ $k_artist[$_]\ \ $option_set$option2_set"."[".$kigou."]"."\n"; $hikae .=" "."$k_price[$_]円"."×"."$k_amount[$_]$k_tani[$_]"."="."$k_total[$_]円"."\n\n"; $data_no ++; } #=========ログの作成======== if($log_make){&put_log();} #=========================== $mailbody = <); close(IN); $base64_csvdata = &bodyencode($csvdata); $base64_csvdata .= &benflush; $ufilenm2 = 'sale.csv'; open(IN,"$file_sale"); $csvdata = join('',); close(IN); $base64_csvdata2 = &bodyencode($csvdata); $base64_csvdata2 .= &benflush; $subject_mime = &mimeencode($subject); #-------BEGINBEGIN--------- $header_tenpu =</g; $mess_C =~ s/"/\"/g; $mess_C =~ s/
/\n/g; $mess_C =~ s/\.\n/\. \n/g; $i =0; foreach(@delivery_time){ if($d_time_C eq $_){ $d_time_check[$i] ="CHECKED"; } $i ++; } if($method_C eq '代引き'){ $daibiki ="CHECKED"; }elsif($method_C eq '郵便振替'){ $yuubin ="CHECKED"; }elsif($method_C eq '銀行振込'){ $bank ="CHECKED"; }elsif($method_C eq 'e-コレクト'){ $collect ="CHECKED"; }else{ $checked_no =1; } $order=$in{'order'}; &keisan(); $tax = int($all_total * $syouhi_tax); $tax_total =$tax + $all_total; $sougoukei =$tax_total +$in{"souryou"}; &daibikikeisann(); &collectkeisann(); if($bank_able ne 1 && $hurikae_able ne 1 && $daibiki_able ne 1 && $collect_able ne 1){ &error("送金方法がまだ設定されていません。"); } $soukinn_houhou =""; if($checked_no eq 1){ if($bank_able eq 1){ $soukinn_houhou .="\ 銀行振込"; } if($hurikae_able eq 1){ if($bank_able ne 1){$checked ='checked';} $soukinn_houhou .="\ 郵便振替"; } if($daibiki_able eq 1){ $checked =""; if($bank_able ne 1 && $hurikae_able ne 1){$checked ='checked';} $soukinn_houhou .="
\ 代引き($daibiki_add円)\  $daibiki_mg"; } if($collect_able eq 1){ $checked =""; if($bank_able ne 1 && $hurikae_able ne 1 && $daibiki_able ne 1){$checked ='checked';} $soukinn_houhou .="
\ e-コレクト($collect_add円)\  $collect_mg"; } }else{ if($bank_able eq 1){ $soukinn_houhou .="\ 銀行振込"; } if($hurikae_able eq 1){ $soukinn_houhou .="\ 郵便振替"; } if($daibiki_able eq 1){ $soukinn_houhou .="
\ 代引き($daibiki_add円)\  $daibiki_mg"; } if($collect_able eq 1){ $soukinn_houhou .="
\ e-コレクト($collect_add円)\  $collect_mg"; } } $i =0; foreach(@delivery_time){ $delivery_time_set .="\ $_"; if($i == 0 || $i == 3){$delivery_time_set .='
';} $i ++; } $souryou_set =$in{"souryou"}; 1 while $souryou_set =~ s/(.*\d)(\d\d\d)/$1,$2/g; #桁カンマを入れる処理 1 while $tax =~ s/(.*\d)(\d\d\d)/$1,$2/g; #桁カンマを入れる処理 1 while $all_total =~ s/(.*\d)(\d\d\d)/$1,$2/g; #桁カンマを入れる処理 1 while $sougoukei =~ s/(.*\d)(\d\d\d)/$1,$2/g; #桁カンマを入れる処理 &html_header(); $ajust =$o_width -150; $ajust2 =$o_width -600; $ajust2=int($ajust2/5); $w1=120+$ajust2; $w2=180+$ajust2; $w3=100+$ajust2; $w4=80+$ajust2; $w5=120+$ajust2; print <<"EOF";
商品の検索 >> かごの中 >> ご注文 >> ご注文内容のご確認 >> 完了
EOF print <<"EOF";
■商品画面へ戻る
■ご注文内容■
ご注文の内容を確認してからお客様情報をご記入して下さい。
EOF @order_1 = split(/!/,$order); foreach (0..$all_no) { ($s,$t) = split(/:/,$order_1[$_]); ($a,$b,$c) = split(/\,/,$s); $kigou = $k_id[$_]; if($b ne ""){ $kigou .="-".$b; } if($c ne ""){ $kigou .="-".$c; } @opt = split(/\:/,$k_option[$_]); $i = 0; $option_set =""; while($i < $option_no) { ($op_k[$i],$op_m[$i]) =split(/\,/,$opt[$i]); if($op_k[$i] eq "" or $op_k[$i] ne $b){ $i++; next;} $option_set ="OP=". $op_m[$i]; last; } @opt2 = split(/\:/,$k_option2[$_]); $i = 0; $option2_set =""; while($i < $option2_no) { ($op2_k[$i],$op2_m[$i]) =split(/\,/,$opt2[$i]); if($op2_k[$i] eq "" or $op2_k[$i] ne $c){ $i++; next;} $option2_set = "OP=".$op2_m[$i]; last; } 1 while $k_price[$_] =~ s/(.*\d)(\d\d\d)/$1,$2/g; #桁カンマを入れる処理 1 while $k_total[$_] =~ s/(.*\d)(\d\d\d)/$1,$2/g; #桁カンマを入れる処理 print <<"EOF"; EOF } if($tax_flag eq '' or $tax_flag == 0){ print <<"EOF"; EOF }else{ print <<"EOF"; EOF } print <<"EOF";
商品ID 商品名 単価$tax_set 個数 金額

[$a]$kigou $k_name[$_]
EOF if($k_artist[$_] ne ""){print "「$k_artist[$_]」"} print <<"EOF";
$option_set$option2_set
$k_price[$_]円 $k_amount[$_]$k_tani[$_] $k_total[$_]円

合計$tax_set $all_total円
消費税 $tax円
送料 $souryou_set円
合計(消費税込、送料込み) $sougoukei円
合計$tax_set $all_total円
送料 $souryou_set円
合計(送料込み) $sougoukei円

■お客様情報■
お名前 ※全角文字
メールアドレス ※半角英数
メールアドレス確認 ※確認のためもう一度
ご住所 ※半角英数
※都道府県名からご記入下さい
電話番号 ※半角英数
お支払方法 $soukinn_houhou
配達時間指定 $delivery_time_set
連絡事項
送付先(上記と異なる場合に記入)
お名前
ご住所
電話番号
メールマガジン ※メールマガジンを購読されない方はチェックマークをはずしてください


EOF #=======================入力チェック=================================== print <<"EOF"; EOF print "$foot\n" ; } #====================================確認==================================== sub sure { #クッキーの設定 print &setCookie("SIMEI", $in{'SIMEI'}); print &setCookie("MAIL", $in{'MAIL'}); print &setCookie("MAIL2", $in{'MAIL2'}); print &setCookie("POST", $in{'POST'}); print &setCookie("ADDR", $in{'ADDR'}); print &setCookie("TEL", $in{'TEL'}); print &setCookie("METHOD", $in{'METHOD'}); print &setCookie("D_TIME", $in{'d_time'}); print &setCookie("MESS", $in{'MESS'}); print &setCookie("SIMEI2", $in{'SIMEI2'}); print &setCookie("POST2", $in{'POST2'}); print &setCookie("ADDR2", $in{'ADDR2'}); print &setCookie("TEL2", $in{'TEL2'}); if ($in{'MAIL'} ne "" && $in{'MAIL'} !~ /[\w\.\-]+\@[\w\.\-]+\.[a-zA-Z]{2,5}$/) { &error("ブラウザの [戻る] ボタンで戻って、メールアドレスを確認してください。"); } $order=$in{'order'}; &keisan(); $tax = int($all_total * $syouhi_tax); $tax_total =$tax + $all_total; $sougoukei =$tax_total +$in{"souryou"}; $souryou_set =$in{"souryou"}; &daibikikeisann(); &collectkeisann(); $ajust =$o_width -150; $ajust2 =$o_width -600; $ajust2=int($ajust2/5); $w1=120+$ajust2; $w2=180+$ajust2; $w3=100+$ajust2; $w4=80+$ajust2; $w5=120+$ajust2; $method_set="$in{'METHOD'}"; if($in{'METHOD'} eq '代引き'){ $method_set.="\  $daibiki_mg"; $daibiki_add_set =< 代引き手数料 $daibiki_add円 EOF # $sougoukei =$sougoukei +$daibiki_add; }elsif($in{'METHOD'} eq 'e-コレクト'){ $method_set.="\  $collect_mg"; $daibiki_add_set =< e-コレクト手数料 $collect_add円 EOF # $sougoukei =$sougoukei +$daibiki_add; } 1 while $souryou_set =~ s/(.*\d)(\d\d\d)/$1,$2/g; #桁カンマを入れる処理 1 while $tax =~ s/(.*\d)(\d\d\d)/$1,$2/g; #桁カンマを入れる処理 1 while $all_total =~ s/(.*\d)(\d\d\d)/$1,$2/g; #桁カンマを入れる処理 1 while $sougoukei =~ s/(.*\d)(\d\d\d)/$1,$2/g; #桁カンマを入れる処理 &html_header(); $ajust =$o_width -150; $ajust2 =$o_width -600; $ajust2=int($ajust2/5); $w1=120+$ajust2; $w2=180+$ajust2; $w3=100+$ajust2; $w4=80+$ajust2; $w5=120+$ajust2; print <<"EOF";
商品の検索 >> かごの中 >> ご注文 >> ご注文内容のご確認 >> 完了
EOF print <<"EOF";
■戻って訂正\ ■商品画面へ戻る
■確認画面■
ご記入内容に誤りが無いか確認して下さい。
EOF @order_1 = split(/!/,$order); foreach (0..$all_no) { ($s,$t) = split(/:/,$order_1[$_]); ($a,$b,$c) = split(/\,/,$s); $kigou = $k_id[$_]; if($b ne ""){ $kigou .="-".$b; } if($c ne ""){ $kigou .="-".$c; } @opt = split(/\:/,$k_option[$_]); $i = 0; $option_set =""; while($i < $option_no) { ($op_k[$i],$op_m[$i]) =split(/\,/,$opt[$i]); if($op_k[$i] eq "" or $op_k[$i] ne $b){ $i++; next;} $option_set ="OP=". $op_m[$i]; last; } @opt2 = split(/\:/,$k_option2[$_]); $i = 0; $option2_set =""; while($i < $option2_no) { ($op2_k[$i],$op2_m[$i]) =split(/\,/,$opt2[$i]); if($op2_k[$i] eq "" or $op2_k[$i] ne $c){ $i++; next;} $option2_set = "OP=".$op2_m[$i]; last; } 1 while $k_price[$_] =~ s/(.*\d)(\d\d\d)/$1,$2/g; #桁カンマを入れる処理 1 while $k_total[$_] =~ s/(.*\d)(\d\d\d)/$1,$2/g; #桁カンマを入れる処理 print <<"EOF"; EOF } if($tax_flag eq '' or $tax_flag == 0){ print <<"EOF"; EOF }else{ print <<"EOF"; EOF } print <<"EOF"; $daibiki_add_set
商品ID 商品名 単価$tax_set 個数 金額
[$a]$kigou $k_name[$_]
EOF if($k_artist[$_] ne ""){print "「$k_artist[$_]」"} print <<"EOF";
$option_set$option2_set
$k_price[$_]円 $k_amount[$_]$k_tani[$_] $k_total[$_]円
合計$tax_set $all_total円
消費税 $tax円
送料 $souryou_set円
合計(消費税、送料込み) $sougoukei円
合計$tax_set $all_total円
送料 $souryou_set円
合計(送料込み) $sougoukei円

お名前 $in{"SIMEI"}
メールアドレス $in{"MAIL"}
メールアドレス確認 $in{"MAIL2"}
メールマガジン $in{"MAIL2"}
ご住所 〒$in{"POST"}
$in{"ADDR"}
電話番号 $in{"TEL"}
お支払方法 $method_set
配達時間指定 $in{'d_time'}
連絡事項 $in{"MESS"}
送付先(上記と異なる場合に記入)
お名前 $in{"SIMEI2"}
ご住所 〒$in{"POST2"}
$in{"ADDR2"}
電話番号 $in{"TEL2"}


EOF print "$foot\n" ; print "\n" ; print "\n" ; } #======================================かごの中を見る====================================== sub look { $order=$in{'order'}; &keisan(); &html_header(); $ajustw =$o_width -50; $ajust =$o_width -370; $ajust=int($ajust/4); $w1 =112+$ajust; $w2 =180+$ajust*3; $w3 =158+$ajust*3; print <<"EOF";
商品の検索 >> かごの中 >> ご注文 >> ご注文内容のご確認 >> 完了
EOF print <<"EOF";
■商品画面へ戻る
■CART VIEW■
現在のかごの中を\表\示します。 EOF @order_1 = split(/!/,$order); foreach (0..$all_no) { ($s_id,$t) = split(/:/,$order_1[$_]); ($a,$b,$c) = split(/\,/,$s_id); @opt = split(/\:/,$k_option[$_]); $i = 0; $option_set =""; if($b ne ""){ while($i < $option_no) { ($op_k[$i],$op_m[$i]) =split(/\,/,$opt[$i]); if($op_k[$i] ne $b){ $i++; next;} $option_set = $op_m[$i]."(".$op_k[$i].")"; last; } } @opt2 = split(/\:/,$k_option2[$_]); $i = 0; $option2_set =""; if($c ne ""){ while($i < $option2_no) { ($op2_k[$i],$op2_m[$i]) =split(/\,/,$opt2[$i]); if($op2_k[$i] ne $c){ $i++; next;} $option2_set = $op2_m[$i]."(".$op2_k[$i].")"; last; } } ($pic1,$pic2,$pic3,$pic4,$pic5,$pici,$picj) =split(/\|/,$k_picture[$_]); if($pici eq ""){ $pici ="$dir_p/space2.gif"; } $kigou = $k_id[$_]; if($b ne ""){ $kigou .="-".$b; } if($c ne ""){ $kigou .="-".$c; } if($bikou ne "\n"){ $bikou_set = ""; } 1 while $k_price[$_] =~ s/(.*\d)(\d\d\d)/$1,$2/g; #桁カンマを入れる処理 1 while $k_total[$_] =~ s/(.*\d)(\d\d\d)/$1,$2/g; #桁カンマを入れる処理 if($order ne ""){ print <<"EOF"; EOF }else{ print <<"EOF"; EOF } } $all_total_set =$all_total; $tax = int($all_total * $syouhi_tax); $tax_total =$tax + $all_total; 1 while $tax =~ s/(.*\d)(\d\d\d)/$1,$2/g; #桁カンマを入れる処理 1 while $tax_total =~ s/(.*\d)(\d\d\d)/$1,$2/g; #桁カンマを入れる処理 1 while $all_total_set =~ s/(.*\d)(\d\d\d)/$1,$2/g; #桁カンマを入れる処理 if($tax_flag eq '' or $tax_flag == 0){ print <<"EOF"; EOF }else{ print <<"EOF"; EOF } print <<"EOF";
商品画像 内容 金額 取消し
※".$k_bikou[$_]."
$bikou_set
商品名::$k_name[$_]
EOF if($maker ne ''){ print "$maker::$k_artist[$_]
\n"; } print <<"EOF";
商品ID::[$kigou]
オプションA::$option_set
オプションB::$option2_set
単価$tax_set: $k_price[$_]円
購入数: $k_amount[$_]$k_tani[$_]
合計$tax_set: $k_total[$_]円



かごの中は空です。

合計 $all_total_set円  
消費税 $tax円
合計(消費税込み) $tax_total円
合計$tax_set $all_total_set円  

EOF if($order ne ""){ if($all_total < $free_price){ if($souryou_cst eq ''){ if(@souryou_tb <= 1){ $souryou_cst_set = $souryou_tb[0]; 1 while $souryou_cst_set =~ s/(.*\d)(\d\d\d)/$1,$2/g; #桁カンマを入れる処理 $soryo_set ="[送料は$souryou_cst_set円]"; $souryou_hidden =""; }else{ $i = 0; foreach (@souryou_tb) { $soryo_set .= "\n"; $i++; } $soryo_set ="送り先:". ""; } }else{ $souryou_cst_set = $souryou_cst; 1 while $souryou_cst_set =~ s/(.*\d)(\d\d\d)/$1,$2/g; #桁カンマを入れる処理 $soryo_set ="[送料は$souryou_cst_set円]"; $souryou_hidden =""; } }else{ $soryo_set ="[送料は無料です]"; $souryou_hidden =""; } print <<"EOF";
送付先を確認して、注文フォームへ

$soryo_set $souryou_hidden \ \ 
EOF } print "$foot\n" ; print "\n" ; print "\n" ; } #========================================================================================== sub class_name_get{ ($class_B,$k) = split(/\//,$class_tb[$a]); @class_tb2 =split(/:/,$k); if($b ne ''){ $class_S =$class_tb2[$b]; $class_name ="$class_B/$class_S"; }else{ $class_name ="$class_B"; } } #=======================================Shopping Form====================================== sub shop_form { &keisan(); &html_header(); 1 while $all_total =~ s/(.*\d)(\d\d\d)/$1,$2/g; #桁カンマを入れる処理 if($pas_word ne ""){ $condition =$pas_word; }else{ if($in{'class'} eq 'all' or $in{'class'} eq ''){ $condition="$class_all"; }else{ ($a,$b) =split(/\//,$in{'class'}); &class_name_get(); $condition =$class_name; } } print <<"EOF";
商品の検索 >> かごの中 >> ご注文 >> ご注文内容のご確認 >> 完了
EOF print <<"EOF"; EOF ($a,$b) =split(/\//,$in{'class'}); &class_name_get(); $list_data = ''; $i =0; foreach (@class_tb) { if($small_class_g == 0 || $a eq '' || $a eq 'all'){ last;} ($class_b,$k) = split(/\//,$_); if($class_b ne $class_B){$i ++; next;} @class_S =split(/:/,$k); $j =0; foreach (@class_S) { $jump =$script.'?'."class=$i/$j&keyword=&superkey=1&FF=0&order=$in{'order'}"; $list_data .= "| $class_S[$j] "; $j ++; } last; } if($list_data ne ''){ $list_data =""; } print "$list_data"."
\ 
"."$list_data"." |"."
\n"; if($list_data ne ''){ print "
"; } print <<"EOF";
※商品画像をクリックすると詳細説明を見ることができます。 \ 買い物合計額: $all_total円\ 
検索条件>$condition\ HIT商品数[$data_su\件]

EOF if (!@NEW) { print <<"EOF";
■該当する商品はありません■
EOF }else{ #======================================================================== $width_name = $t_width - 475; print <<"EOF"; EOF } #==================================== foreach ( @NEW ) { ($goods_no,$name,$artist,$kigou,$option,$option2,$class,$setumei,$fcolor,$price,$tani,$zaiko,$limit,$picture,$bikou) = split(/\<\>/,$_); @option = split(/\:/,$option); $i = 0; $option_set = ""; while($i < $option_no) { ($op_k[$i],$op_m[$i]) =split(/\,/,$option[$i]); if($op_k[$i] eq ""){ $i++; next;} $option_set = $option_set."\n"; $i++; } if($option_set ne ""){ $option_set = ""; }else{ $option_set ="\ "; } @option2 = split(/\:/,$option2); $i = 0; $option2_set = ""; while($i < $option2_no) { ($op2_k[$i],$op2_m[$i]) =split(/\,/,$option2[$i]); if($op2_k[$i] eq ""){ $i++; next;} $option2_set = $option2_set."\n"; $i++; } if($option2_set ne ""){ $option2_set = "
"; }else{ $option2_set ="\ "; } $price_set = $price; 1 while $price_set =~ s/(.*\d)(\d\d\d)/$1,$2/g; #桁カンマを入れる処理 if ($price =~ /[^0-9]/) { # 文字列を含んでいたらか?全角数字も。 $price_set = "$price_set"; } ($setumei,$setumei2) =split(/\|\|/,$setumei); $setumei_set =""; $bikou_form = ""; if($bikou ne "\n"){ $bikou = "
※".$bikou; } $setumei_set .=$setumei. $bikou; if($zaiko eq ""){ $zaiko = 10000000; } if($zaiko ne ""){ $zaiko_set ="
$zaiko2"; }else{ $zaiko_set =""; $zaiko = $zaiko2; } if($limit ne ""){ $tani_set ="
$limit$taniまで"; }else{ $tani_set =$tani; $limit =100000; } $kosuu_setting = ""; foreach ( @kosuu_set ) { if($_ >$limit or $_ >$zaiko){ last; }else{ $kosuu_setting .= ""; } } if($kosuu_setting eq ""){ $kosuu_setting = "$tani_set"; }else{ $kosuu_setting = "$tani_set"; } $folder="$dir_p/order.gif"; if($zaiko ne $zaiko2){ $get_setting = ""; }else{ $get_setting = $zaiko3; } $word='タイムサービス'; $words='タイムサービス'; if (index($setumei,$word) >= 0 || index($bikou,$word) >= 0 || index($setumei,$words) >= 0 || index($bikou,$words) >= 0) { # タイムゾーンを日本時間に合わせる $ENV{'TZ'} = "JST-9"; $times = time; ($sec,$min,$hour,$day,$month,$year,$wday,$Days,$dmy) = localtime($times); $time =$hour.':'.$min; if($time < $service_time[0] || $service_time[1] < $time){ $get_setting ="[サービスタイム]".'
'."$service_time[0]-$service_time[1]"; } } ($pic1,$pic2,$pic3,$pic4,$pic5,$pici,$picj) =split(/\|/,$picture); if($pici eq ""){ if(-e $default_g){$pici ="$default_g"; }else{$pici ="$dir_p/space2.gif";} } $link_pw ="$modoru_goods&mode=p_wide&id=$goods_no"; $w_setum =$t_width-290; ($a,$b) =split(/\//,$class); &class_name_get(); print < EOF } if (@NEW) { print <<"EOF";
[$kigou]$name


¥$price_set $br_tax_set$zaiko_set
EOF if($maker ne ""){ print "[$maker…$artist]
"; } print <
$setumei_set $bikou_form $option_set
$option2_set $kosuu_setting
$get_setting
EOF } $buf ="class=".$in{'class'}; $buf2 ="order=".$in{'order'}; $buf3 ="keyword=".$in{'keyword'}; if($data_su > $page){ $i =1; $j =0; while ($j < $data_su){ if($j ne $ff_no ){ $jump_set .="[$i]"; }else{ $jump_set .="[$i]"; } $i ++; $j = $j + $page; } } $nextlink = ""; if ($next_num ne '') { $nextlink = "次の$over_no件"; } $backlink = ""; $back_num = $ff_no -$page; if($back_num >=0) { $backlink = "前の$page件\ \ "; } if($page_view){ print "
$backlink$nextlink\ \  $jump_set
\n"; }else{ print "
$backlink$nextlink
\n"; } print "$foot\n" ; print " \n" ; print "\n" ; } #========================================================================================= sub keisan { $data_no =0; $all_total = 0; @souryou_tb = (); $size_A ='0'; $tiikiNO=@souhusaki; if($tiikiNO < 1){ $tiikiNO =1; } @order_1 = split(/!/,$order); foreach (@order_1) { ($s,$t) = split(/:/,$_); ($a,$b,$c) = split(/\,/,$s); $flag =0; foreach ( @BASE ) { ($goods_no,$name,$artist,$kigou,$option,$option2,$class,$setumei,$fcolor,$price,$tani,$zaiko,$limit,$picture,$bikou) = split(/\<\>/,$_); if($a == $goods_no){ $flag=1; last; } } #エラーチェック if($flag == 0){ print &setCookie_0('ORDER', ''); &error("NO.$aの商品情報が削除されています。",'商品画面で確認してください。'); } @opt = split(/\:/,$option); if($b eq ''){ $i = 0; $flag=1; while($i < $option_no) { ($op_k[$i],$op_m[$i]) =split(/\,/,$opt[$i]); if($op_k[$i] ne ''){$flag =0; last;} $i++; } }else{ $i = 0; $flag =0; while($i < $option_no) { ($op_k[$i],$op_m[$i]) =split(/\,/,$opt[$i]); if($op_k[$i] eq $b){$flag=1;last;} $i++; } } if($flag == 0){ print &setCookie_0('ORDER', ''); &error("NO.$aの商品情報が変更されています。",'商品画面で確認してください。'); } @opt = split(/\:/,$option2); if($c eq ''){ $i = 0; $flag=1; while($i < $option_no) { ($op_k[$i],$op_m[$i]) =split(/\,/,$opt[$i]); if($op_k[$i] ne ''){$flag =0; last;} $i++; } }else{ $i = 0; $flag =0; while($i < $option_no) { ($op_k[$i],$op_m[$i]) =split(/\,/,$opt[$i]); if($op_k[$i] eq $c){$flag=1;last;} $i++; } } if($flag == 0){ print &setCookie_0('ORDER', ''); &error("NO.$aの商品情報が変更されています。",'商品画面で確認してください。'); } if($zaiko ne '' && $t > $zaiko){ print &setCookie_0('ORDER', ''); &error("NO.$aの商品の注文数が在庫数を越えています。",'商品画面で確認してください。'); } if($limit ne '' && $t > $limit){ print &setCookie_0('ORDER', ''); &error("NO.$aの商品の注文数が制限を越えています。",'商品画面で確認してください。'); } $sizeno = 1; #サイズAはスキップ $size_flag = '0'; while ($sizeno < @size_tb) { if(index($bikou,$size_tb[$sizeno]) >= 0){ $tiiki =0; @s_tb = split(/:/,$souryou[$sizeno]); while ($tiiki < $tiikiNO) { $souryou_tb[$tiiki] =$souryou_tb[$tiiki] + $s_tb[$tiiki] * $t; $tiiki ++; } $size_flag = '1'; last; } $sizeno ++; } if($size_flag eq '0'){ $size_A = '1'; } $k_no[$data_no] = $a; $k_id[$data_no] = $kigou; $k_name[$data_no] = $name; $k_artist[$data_no] = $artist; $k_option[$data_no] = $option; $k_option2[$data_no] = $option2; $k_bikou[$data_no] = $bikou; $k_price[$data_no] = $price; $k_amount[$data_no] = $t; $k_tani[$data_no] = $tani; $k_picture[$data_no] = $picture; $k_total[$data_no] = $t*$price; $all_total = $k_total[$data_no] + $all_total; $all_no = $data_no; $data_no++; } $tiiki =0; if($size_A eq '1'){ @s_tb = split(/:/,$souryou[0]); while ($tiiki < $tiikiNO) { $souryou_tb[$tiiki] =$souryou_tb[$tiiki] + $s_tb[$tiiki]; $tiiki ++; } } } #====================================================================== sub setCookie{ local($tmp, $val); $val = $_[1]; $val =~ s/(\W)/sprintf("%%%02X", unpack("C", $1))/eg; $tmp = "Set-Cookie: "; $tmp .= "$_[0]=$val; "; $tmp .= "expires=Thu, 1-Jan-2030 00:00:00 GMT;\n"; return($tmp); } sub setCookie_0{ local($tmp, $val); $val = $_[1]; $val =~ s/(\W)/sprintf("%%%02X", unpack("C", $1))/eg; $tmp = "Set-Cookie: "; $tmp .= "$_[0]=$val; "; $tmp .= ";\n"; return($tmp); } # # Cookieの値を読み出す # sub getCookie { local($xx, $name, $value); for $xx (split(/; */, $ENV{'HTTP_COOKIE'})) { ($name, $value) = split(/=/, $xx); $value =~ s/%([0-9A-Fa-f][0-9A-Fa-f])/pack("C", hex($1))/eg; $COOKIE{$name} = $value; } } sub html_header{ print "Content-type: text/html\n\n"; print <<"EOF"; $main_title EOF print " $body\n"; print " $header\n"; } #=================ロック処理=================================== sub lock_log{ local($retry) = 5; while (!symlink(".", $loglock)) { if (--$retry <= 0) { &error("mu_shop is lock."); } sleep(1); } } #=============================================================== sub error { # ファイルロック解除 if (-e $loglock) { unlink($loglock); } &html_header(); print <<"EOF";
EOF print "
$_[0]
\n"; print "
$_[1]
\n"; print "

$foot\n"; exit; }