#!/usr/bin/perl #------------------------------------------------------ # 更新日時 2002/06/25 20:33 #------------------------------------------------------ $|=1; require './lib/cgi-lib.pl'; require './lib/jcode.pl'; require './lib/cooki.pl'; require './sql-engine.pl'; #------------------------------------------------------------------------------# # 設定・変更箇所 # #------------------------------------------------------------------------------# $fileDir = './db/'; $imgDir = '../../db_img/'; $uploadDir = '../../db_img/'; $reviewDir = './db_review/'; #画像のサイズ $PIC_WIDTH = 100; $PIC_HEIGHT = 100; # 共通のロゴ $imgNo = 'noimage.gif'; $miseLogo = 'logo.gif'; $miseName = ''; $imgTsuhan = 'tsuhan.gif'; $imgHome = 'home.gif'; #---------------------- $miseLogo2 = 'soldgoldlogo.gif'; # 画面の色や背景の設定 (BODYタグ HTML書式) $body = ''; $style = ''; # 入力形式の設定 標準='POST' その他'GET' # 登録ボタンを押して Method not implemented.. 等というエラーが出る場合は GET で試すこと # GETの場合は不要な悪戯を受けてしまう環境になりますので、注意してください. $method = $ENV{'REQUEST_METHOD'}; ####クッキー $hold_days = 1; $cookie_id = 'autolife'; ######### 設定項目 ################################################# $cgifile = "cart_pro.cgi"; # 当CGIファイルの名前 #フルパス指定の場合はhttp://〜cart_pro.cgi 〜はCGIまでの絶対リンクです。 $f_lock = "on"; # on = #flock オン , off = #flock オフ IDファイルの同時書き込みを回避します。 $user = 'autolife@g-autolife.com'; # 注文書送信先メールアドレス 書き換え必須!!! $user2 = ''; $url_jump= "http://www.g-autolife.com/"; # 商品注文メール送信後に戻るURL (例 : index.html) $url_jump2="http://www.g-autolife.com/sg/"; $url_name= "HOMEへ戻る"; # 商品注文メール送信後に戻るリンク先の名前 (例 : HOMEへ) $setting = ''; # ページ全体のフォントカラー等の設定 $memory = on ; # off / on メールアドレス登録により、次回購入時入力作業軽減措置 # 上記の$memoryをonにする事により、注文主のメールアドレスを登録できるようになり、 # 次回注文時には、注文主がメールアドレスを入力するだけで、個人情報を入力する必要が無くなります。 $puru_max = 12; # 商品の変更・削除を行った際、プルダウンメニューの数量の最大 $pageMax = 10; #1ページに表示する商品数 $copyright = 'copyright(c) www.g-autolife.com 2004'; #商品を追加した後の表示するページのリスト @back_url = ('0','original.html','','','',''); #最初はトップページにしておいてください。 ###### 消費税設定 ############################################## $tax_in = off ; # off = 消費税なし on = 消費税あり ###### 送料区分 ################################################ # 0 = 送料なし # 1 = 一定金額以上購入すると送料無料の場合 # 2 = 送料完全固定(購入金額に関係なく変動しない場合) $souryou = 0 ; # 送料区分(上記参照) 0 以外は下記も要設定 #$souryou1 = 1000 ; # 1,2 の場合の送料 #$souryou2 = 1200 ; # 1 の場合の一定の金額 ################################################################## 設定はここまで $subject ='オートライフ【注文書】'; # 送信メールタイトル $reji = '
'; $reji .= '
'; # #------------------------------------------------------------------------------# # 設定・変更箇所--ここまで # #------------------------------------------------------------------------------# # 日付を取得 # $date_nowには定型化された日付表示が # $data_numには日付から得られる数値が格納される # (2000年問題対応) ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time); if ($year > 50) {$year += 1900 ;} else{$year += 2000 ;} @wday_array = ('日','月','火','水','木','金','土'); $date_now = sprintf("%04d年%02d月%02d日(%s)%02d時%02d分%02d秒",$year,$mon +1,$mday,$wday_array[$wday],$hour,$min,$sec); $date_num = sprintf("%04d%02d%02d%02d%02d%02d",$year,$mon +1,$mday,$hour,$min,$sec); # リモートホストを取得 $addr = $ENV{'REMOTE_ADDR'}; $host = $ENV{'REMOTE_HOST'}; if ($host eq $addr) { $host = gethostbyaddr(pack('C4',split(/\./,$host)),2) || $addr; } # フォームからのデータを取得 if ($method eq 'POST' && $ENV{'QUERY_STRING'} ne '') { &error('要求エラー','POSTかGETしか受け取れません。'); } if ($method eq 'POST') { read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'}); @pairs = split(/&/, $buffer); } elsif ($method eq 'GET') { @pairs = split(/&/, $ENV{'QUERY_STRING'}); } else { &error('要求エラー','POSTかGETしか受け取れません。'); } # フォームからのデータを連想配列に格納 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; &jcode'convert(*name,'sjis'); &jcode'convert(*value,'sjis'); # 入力データのチェック # タグが入力されていれば、それを無効にする。<などに置き換え表示してる $value =~ s//>/g; # 区切り文字の”,”があれば”,”に変換 $value =~ s/\,/,/g; # 改行コードを
に変換(上からWin、Mac、Unix用の処理) # $value =~ s/\r\n/
/g; # $value =~ s/\r/
/g; # $value =~ s/\n/
/g; # 連想配列に格納 if ($name eq 'goods'){ $MYDATA{$name} .= $value; } else{ $MYDATA{$name} = $value; } } $filename .= "$fileDir"."$MYDATA{'fpath'}".'.csv'; $memo_mail = $MYDATA{'memo_mail'}; $memo_check = $MYDATA{'memo_check'}; $cart = $MYDATA{'cart'}; $kazu = $MYDATA{'kazu'}; $id = $MYDATA{'id'}; $name = $MYDATA{'name'}; $page_id = $MYDATA{'page_id'}; $price = $MYDATA{'price'}; $submit = $MYDATA{'submit'}; $size = $MYDATA{'size'}; $goods = $MYDATA{'goods'}; $change = $MYDATA{'change'}; $iro = $MYDATA{'color'}; $regname = $MYDATA{'regname'}; $regname2 = $MYDATA{'regname2'}; $tel = $MYDATA{'tel'}; $tel2 = $MYDATA{'tel2'}; $add11 = $MYDATA{'add11'}; $add21 = $MYDATA{'add21'}; $add12 = $MYDATA{'add12'}; $add22 = $MYDATA{'add22'}; $add13 = $MYDATA{'add13'}; $add23 = $MYDATA{'add23'}; $zip = $MYDATA{'zip'}; $zip2 = $MYDATA{'zip2'}; $email = $MYDATA{'email'}; $total = $MYDATA{'total'}; $total1 = $MYDATA{'total1'}; $total2 = $MYDATA{'total2'}; $fax = $MYDATA{'fax'}; $tax = $MYDATA{'tax'}; $ryoushu = $MYDATA{'ryoushu'}; $tax_ = $MYDATA{'tax_'}; $shiharai = $MYDATA{'shiharai'}; $tax_no = $MYDATA{'tax_no'}; $atena = $MYDATA{'atena'}; $souryou_p= $MYDATA{'souryou_p'}; $comment = $MYDATA{'comment'}; $set_num = $MYDATA{'set_num'}; $mk = $MYDATA{'mk'}; ## 空白削除 # $email =~ s/\s*//g; $memo_mail =~ s/\s*//g; ################################## #--------------------------# # ID 取得 # #--------------------------# &get_cookie(); $id = $cookie{'id'}; sub GET_ID{ if ($id eq "") { open ID, "; close ID; ++$id; open ID, ">id.txt" || die "Could not open the file"; &f_lock("ID"); print ID $id; close ID; $cookie{'id'} = $id; &set_cookie(); } } ##### メールタイトル日本語化処理 # $subject = &mail64encode($subject);sub mail64encode { local($subject) = $_[0]; &jcode'convert(*subject, "jis"); $subject =~ s/\x1b\x28\x42/\x1b\x28\x4a/g; $subject = &base64encode($subject); return("=?iso-2022-jp?B?$subject?=\n"); } sub base64encode { local($base) = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" . "abcdefghijklmnopqrstuvwxyz" . "0123456789+/"; local($subject, $yy, $zz, $i); $subject = unpack("B*", $_[0]); for ($i = 0; $yy = substr($subject, $i, 6); $i += 6) { $zz .= substr($base, ord(pack("B*", "00" . $yy)), 1); if (length($yy) == 2) { $zz .= "=="; } elsif (length($yy) == 4) { $zz .= "="; } } return($zz); } #-----------------------------# # カテゴリ選択(トップページ) # #-----------------------------# sub catego { print "Content-type: text/html\n\n"; print <<"HERE"; オートライフ$setting

ショッピングカート



HERE } #--------------------------# # 商品選択 # #--------------------------# if ($cart eq '買い物を続ける' || $cart eq '戻 る') { print "Content-type: text/html\n\n"; print "$main_title"; print "\n"; © exit; } sub top_disp { &catego; print "
\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "
\n"; &option; print "
\n\n"; © exit; } #--------------------------# # 内容確認 # #--------------------------# if ($cart eq '内容確認') { ✓ &back_set(0); &top("あなたのカートの中身"); &disptop; © } #--------------------------# # 商品追加 # #--------------------------# Se::DBOpen("MAIN", "$filename"); Se::Execute("SELECT * FROM MAIN WHERE dt2 = \"$MYDATA{'num'}\""); if(Se::RecordCount() > 0){ $item = $MYDATA{'new_item'} .':=:'.$iro.':=:'.$MYDATA{'vali1'}.':=:'.$MYDATA{'vali2'}.':=:'.$MYDATA{'omosa'}; &back_set(0); } $MYDATA{'new_item'} = $item; $item_no = $MYDATA{'num'}; if ($cart eq "カートに入れる") { if ($MYDATA{'new_item'} eq "br") { &error("ERROR","数量を選択して下さい","BACK"); } if ("$MYDATA{'new_item'}" =~ /(.*):=:(.*):=:(.*):=:(.*):=:(.*):=:(.*):=:(.*):=:(.*)/) { $item_no = $1; } &GET_ID(); open IN, ") { if (/$item_no/) { &error("ERROR","同一商品がカートに入っています","戻 る"); } } close IN; open IN, ">>cart_log/$id.txt" || die "Could not open the file"; print IN"$MYDATA{'new_item'}\n"; close IN; &top("あなたのカートの中身"); &disptop; © } #--------------------------# # カートディスプレイ一覧 # #--------------------------# if ($cart eq "") { # -------------------------------------------------------------- # カテゴリ選択 page_id='' # -------------------------------------------------------------- if ($page_id eq ''){ &top('カテゴリ選択'); print "\n"; if ($miseLogo eq ''){ print "

$miseName

\n"; } else{ print "

\n"; } print "
\n"; print "
\n"; Se::DBOpen("MAIN", "$fileDir".'main.csv'); ############################### # オートライフ Se::Execute("SELECT * FROM MAIN WHERE KUBUN = 1"); while ( Se::Fetch($cate_num,$cate_name,$cate_path,$cate_logo,$cate_memo,$mise_kubun) == 0 ) { print "\n"; print "\n"; print "\n"; print "
$cate_name
\n"; } #---------------------- print "

\n"; print "
商品の詳細ページでは「お客様の声」をご覧頂けます。
"; print "\n"; print "\n"; print "\n"; print "\n"; print "
\n"; print "\n"; print "
\n"; print "
\n"; print "

 

"; print "
\n"; ############################### © exit; } # -------------------------------------------------------------- # ページ一覧 # -------------------------------------------------------------- ##ページヘッダ部分 Se::DBOpen("PAGE","$fileDir".'main.csv'); Se::Execute("SELECT * FROM PAGE WHERE FILENAME = \"$page_id\""); Se::Fetch($dt1,$page_title,$dt3,$logo_path,$memo,$haikei); Se::DBOpen("MAIN", "$fileDir$page_id.csv"); Se::Execute("SELECT * FROM MAIN ORDER BY dt1"); # 商品数の取得 $pages_num = Se::RecordCount(); $item_Max = $pages_num; $pages_num /= $pageMax; $pages_num = ($pages_num == int($pages_num) ? $pages_num : int($pages_num+1)); #切り上げ seek(DB,0,0); if($haikei ne ""){ $setting = ""; } else{ $setting = ""; } &top_itiran($page_title); #***************************##店ロゴ if ($mk == 1){ print "\n"; print "

\n"; } else{ print "
\n"; print "

\n"; } print "
\n"; #****************************## print "

$miseName

\n"; # print "
\n"; if($logo_path ne ""){ print "\n"; } else{ print "$page_title\n"; } #ページヘッダ(MEMO) if($memo ne ""){ print "

$memo

\n"; } #商品検索 # print "
\n"; # print ""; # print "\n"; # print "
"; print "

$reji

\n"; # ファイルデータを配列へ print "\n"; if($pages_num > 1){ print "\n"; } print "
\n"; if($mk == 1){ print ""; } else{ print ""; } print "【HOME】\n"; print "【"; for($i = 1;$i<=$pages_num;$i++){ if($i == $MYDATA{'pageNum'}){ print " $i \n"; } else{ print " "; print "$i \n"; } } $cur = ($MYDATA{'pageNum'} - 1) * $pageMax; print "】全部で$item_Max件


\n"; print "
\n"; ##################### # テンプレート2 ##################### for($i=0;$i<$cur;$i++){ Se::Fetch(); } $i = 0; while ( Se::Fetch($v_num,$goods_id,$name,$colors,$price,$omosa,$picture1,$picture2,$picture3,$template,$memo,$memo2,$dt13,$dt13_1,$dt15,$dt15_1,$dt17,$dt18,$itiran_pic) == 0 ) { if ($i >= $pageMax){ last; } $price_ = $price; &comma($price_); $selectgoods= ""; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "
"; print ""; #イメージの表示 if($itiran_pic eq ''){ print "\n"; } else{ print "\n"; } print "
詳細はクリック"; print "
$name$price_円
$memo2


\n"; print "\n"; $i++; } print "

$reji

"; print "
\n"; print "$copyright\n"; &option; close DB; © } #--------------------------# # カートディスプレイ詳細 # #--------------------------# elsif($cart eq "s"){ #ページヘッダ ($page_title,$logo_path,$pic_dir,$haikei) = split(/:=:/,); if($haikei ne ""){ $setting = ""; } else{ $setting = ""; } &top($page_title); #***************************##店ロゴ if ($mk == 1){ print "\n"; print "

\n"; } else{ print "
\n"; print "

\n"; } print "
\n"; #****************************## if($logo_path ne ""){ print "\n"; } else{ print "$page_title
\n"; } print "
\n"; #詳細 Se::DBOpen("MAIN", "$fileDir$page_id.csv"); Se::Execute("SELECT * FROM MAIN WHERE dt2 = \"$goods\""); while ( Se::Fetch($v_num,$goods_id,$name,$colors,$price,$omosa,$picture1,$picture2,$picture3,$template,$memo,$memo2,$dt13,$dt13_1,$dt15,$dt15_1,$dt17,$dt18) == 0 ) { if ($goods_id eq $goods){ if ($template == 1){ &s_template1; } last; } } $reji; © } #--------------------------# # 商品注文 # #--------------------------# if ($cart eq "レジに行く") { ✓ # if ($MYDATA{'tiku'} eq ""){ # &error ("未選択エラー","地区を選択してください。","BACK"); # exit; # } print "Content-type: text/html\n\n"; print "オートライフ$setting\n"; print "
"; print "ご注文商品明細\n"; print "

"; print "
"; print "\n"; print "\n"; open DISP,"; close DISP; $total1 = 0; $omosatotal = 0; foreach (@lines) { if (/(\w*):=:(.*):=:(.*):=:(.*):=:(.*):=:(.*):=:(.*):=:(.*)/) { $goods_id = $1; $name = $2; $price = $3; $kazu = $4; $iro = $5; $vali1 = $6; $vali2 = $7; $omosa = $8; ## $price =~ s/,//g; $subtotal = $price * $kazu; $subtotal_ = $price * $kazu; $omosatotal += $omosa; &comma($subtotal_); print "\n"; @plus = $subtotal; # 商品計 foreach $plus (@plus) { $total1 += $plus; } } } $total = $total1; print ""; print "
商品番号商品名備考単 価数 量小 計
$goods_id$name$iro"; if ($vali1 ne ""){ print "
$vali1"; } if ($vali2 ne ""){ print "
$vali2"; } print "
$price$kazu$subtotal_円
商品合計$total 円

\n"; ##----------------------------------------------------------------------------## # 消費税+合計+送料=総合計 ##----------------------------------------------------------------------------## if( $tax_in eq 'on'){ $total = int($total + 0.5) ; # 合計金額の四捨五入 $tax = int($total * 1.05); # 消費税計算 $tax_ = $tax - $total ; } else{ $tax = $total; $tax_ =0; } # 送料 # Se::DBOpen("TIKU","unsou.csv"); # Se::Execute("SELECT $MYDATA{'tiku'} FROM TIKU WHERE OMOSA >= $omosatotal"); # Se::Fetch($souryou); $tax += $souryou; &comma($total); &comma($tax); &comma($souryou); &comma($tax_); &comma($tax_no); &comma($souryou_p); print "\n"; print ""; if($tax_in eq 'on'){ print ""; } #if ($souryou != 0) { # print ""; #} print ""; print "
商品合計$total 円
消費税$tax_ 円
送料$souryou 円
お支払い金額$tax 円


"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; # メール送信個人情報入力欄 メールフォーム print "

送料、振込手数料はお客様のご負担でお願いいたします。
"; print "詳しくはメールにて連絡します。

"; print "

ご注文の際は、下記項目をご入力のうえ送信下さい。

"; print <<"HTML_REG";
ご注文者
氏名
郵便番号
住所
(都道府県、市町村名)
(番地等)
(マンション・アパート等)
電話番号
E-Mail
お支払い方法
銀行振込
連絡事項

お届け先(お届け先が上記と異なる場合のみご記入ください。)
氏名
郵便番号
住所
(都道府県、市町村名)
(番地等)
(マンション・アパート等)
電話番号

HTML_REG # print "
\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print ""; print "\n"; print "
"; print ""; print "
\n"; print "
\n"; © } #--------------------------# # メール確認 # #--------------------------# if ($cart eq reg) { open READ,"; close READ; foreach (@lines) { if (/(.*):=:(.*):=:(.*):=:(.*):=:(.*):=:(.*)/) { $email_c = $1; if ($memo_mail eq $email_c) { $email = $1; $regname = $2; $zip = $3; $add = $4; $tel = $5; $fax = $6; } } } &pass; } sub pass { ✓ &conv; # 記入漏れチェック if ($regname eq "" || $email eq "" || $add11 eq "" || $tel eq "" || $shiharai eq "") { &error("ERROR","記入漏れがあります","BACK"); exit; } print "Content-type: text/html\n\n"; print "オートライフ$setting\n"; print "\n"; print "
"; print "
"; 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 "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print <<"HTML_REG";
ご注文者
氏名
$regname
郵便番号
$zip
住所
$add11
$add12
$add13
電話番号
$tel
E-Mail
$email
お支払い方法
$shiharai
連絡事項
$comment

お届け先
氏名
$regname2 
郵便番号
$zip2 
住所
$add21
$add22
$add23 
電話番号
$tel2 

@上記内容の控えのメールがお客様宛に自動送信されます。ご注文控えがお手元に届かない場合はお客様のメールアドレスの間違いが考えられますので再度ご注文下さい。
A折り返し納期のご連絡をいたしておりますが、2営業日が過ぎても連絡が無い場合はお問い合わせ下さい。
HTML_REG print "

\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print ""; print "\n"; print "
"; print ""; print "
\n"; print "
\n"; © exit; } #--------------------------# # メール送信 # #--------------------------# if ($cart eq reg_send) { ## 記入漏れチェック #if ($regname eq "" || $email eq "" || $add11 eq "" || $tel eq "" ) { # # &error("ERROR","記入漏れがあります","BACK"); # #exit; #} unless ($email =~ /.+\@.+\..+/) { &error2("ERROR","メールアドレスをご確認ください。","BACK"); } if( open(MAIL,"| /usr/sbin/sendmail $user")) { &conv; print MAIL "From: $email\n"; print MAIL "Subject: $subject\n"; print MAIL "---------------------------------------------------------------\n"; print MAIL " ご注文主の情報\n"; print MAIL "---------------------------------------------------------------\n"; print MAIL "ご注文No. = $id\n"; print MAIL "お名前 = $regname\n"; print MAIL "電子メール = $email\n"; print MAIL "郵便番号1 = $zip\n"; print MAIL "ご住所1 = $add11\n"; print MAIL "ご住所2 = $add12\n"; print MAIL "ご住所3 = $add13\n"; print MAIL "お電話1 = $tel\n"; print MAIL "お支払方法 = $shiharai\n"; print MAIL "---------------------------------------------------------------\n"; print MAIL "連絡事項\n"; print MAIL "$comment\n"; print MAIL "__end__\n"; if ($regname2 ne "") { print MAIL "---------------------------------------------------------------\n"; print MAIL " お届け先の情報\n"; print MAIL "---------------------------------------------------------------\n"; print MAIL "お名前2 = $regname2\n"; print MAIL "郵便番号2 = $zip2\n"; print MAIL "ご住所21 = $add21\n"; print MAIL "ご住所22 = $add22\n"; print MAIL "ご住所23 = $add23\n"; print MAIL "お電話2 = $tel2\n"; } print MAIL "---------------------------------------------------------------\n"; print MAIL " 商品情報 \n"; print MAIL "---------------------------------------------------------------\n"; open IN, "; close IN; foreach (@lines) { if (/(\w*):=:(.*):=:(.*):=:(.*):=:(.*):=:(.*):=:(.*):=:(.*)/) { $goods_id = $1; $name = $2; $price = $3; $kazu = $4; $iro = $5; $vali1 = $6; $vali2 = $7; $omosa = $8; $subtotal = $price * $kazu; ++$cnt; print MAIL "商品 = $cnt;$name;$price;$kazu;$subtotal;"; if ($iro ne ""){ print MAIL "$iro"; } if ($vali1 ne ""){ print MAIL ":$vali1"; } if ($vali2 ne ""){ print MAIL ":$vali2"; } print MAIL "\n"; print MAIL "商品名 $cnt $name $iro $vali1 $vali2\n"; print MAIL " $price X $kazu = $subtotal 円\n"; print MAIL "---------------------------------------------------------------\n"; } } print MAIL "---------------------------------------------------------------\n"; print MAIL " 金額情報 \n"; print MAIL "---------------------------------------------------------------\n"; print MAIL " 合計 $MYDATA{'total1'} 円 \n"; print MAIL "---------------------------------------------------------------\n"; print MAIL "---------------------------------------------------------------\n"; print MAIL "商品合計 = $total 円\n"; if ($tax_in eq 'on'){ print MAIL "消費税 = $tax_ 円\n"; } # print MAIL "送料 = $souryou_p 円\n"; print MAIL "お支払い合計= $tax 円\n"; print MAIL "---------------------------------------------------------------\n"; print MAIL "Remote host: $ENV{'REMOTE_HOST'}\n"; print MAIL "User Agent : $ENV{'HTTP_USER_AGENT'}\n"; close(MAIL); if($user2 ne ""){ &mailsend2; } }else{ print "Content-type: text/html\n\n"; print "Request Rejected\n"; print "

メール送信は失敗しました。

\n"; } if ($email ne "") { &next_mail; } else { unlink "cart_log/$id.txt"; &errortop ("送信完了","送信完了いたしました。","TOPへ"); } exit; } ############################################## # # 注文確認用メール(注文主への確認メール) # ############################################## sub next_mail { unless ($email =~ /.+\@.+\..+/) { &error2("ERROR","メールアドレスをご確認ください。","BACK"); } if( open(MAIL,"| /usr/sbin/sendmail $email")) { &conv; print MAIL "From: $user\n"; print MAIL "Subject: $subject\n"; open (FILE,"mail1.txt"); @mailtext = ; print MAIL @mailtext; close(FILE); print MAIL "---------------------------------------------------------------\n"; print MAIL " ご注文主の情報\n"; print MAIL "---------------------------------------------------------------\n"; print MAIL "ご注文No. $id\n"; print MAIL "お名前 $regname\n"; print MAIL "電子メール $email\n"; print MAIL "郵便番号 $zip\n"; print MAIL "ご住所 $add11$add12$add13\n"; print MAIL "お電話 $tel\n"; print MAIL "お支払方法 $shiharai\n"; print MAIL "---------------------------------------------------------------\n"; print MAIL "連絡事項\n"; print MAIL "$comment\n"; if ($regname2 ne "") { print MAIL "---------------------------------------------------------------\n"; print MAIL " お届け先指定\n"; print MAIL "---------------------------------------------------------------\n"; print MAIL "お名前 $regname2\n"; print MAIL "郵便番号 $zip2\n"; print MAIL "ご住所 $add21$add22$add23\n"; print MAIL "お電話 $tel2\n"; } print MAIL "---------------------------------------------------------------\n"; print MAIL "---------------------------------------------------------------\n"; open IN, "; close IN; foreach (@lines) { if (/(\w*):=:(.*):=:(.*):=:(.*):=:(.*):=:(.*):=:(.*):=:(.*)/) { $goods_id = $1; $name = $2; $price = $3; $kazu = $4; $iro = $5; $vali1 = $6; $vali2 = $7; $omosa = $8; $subtotal = $price * $kazu; ++$cnt2; print MAIL "商品名 $cnt2 $name $iro $vali1 $vali2\n"; print MAIL " $price X $kazu = $subtotal 円\n"; print MAIL "---------------------------------------------------------------\n"; } } print MAIL " 合計 $MYDATA{'total1'} 円 \n"; print MAIL "---------------------------------------------------------------\n"; print MAIL "---------------------------------------------------------------\n"; print MAIL "商品合計 $total 円\n"; if ($tax_in eq 'on'){ print MAIL "消費税 $tax_ 円\n"; } # print MAIL "送料 $souryou_p 円\n"; print MAIL "お支払い合計 $tax 円\n"; # # 下記コメントは書き換えてください。 # open (FILE,"mail2.txt"); @mailtext = ; print MAIL "\n"; print MAIL @mailtext; close(FILE); close(MAIL); unlink "cart_log/$id.txt"; &errortop ("送信完了","送信完了いたしました。","$url_name"); &del_cookie(); exit; } } #--------------------------# # 商品変更・削除表示 # #--------------------------# if ($cart eq '変更・削除') { ✓ print "Content-type: text/html\n\n"; print "商品変更&削除ページ$setting\n"; print "
\n"; print "

数量変更と削除

\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "
\n"; print "数量変更の場合は、プルダウンメニューよりお選び下さい。
商品を削除する場合は、無選択(0)のままにしておいてください。
よろしければ決定ボタンを押します。\n"; print "
\n"; print "
\n"; print "
\n"; print "
\n"; print "\n"; print "\n"; open DB, "; close DB; foreach (@lines) { if (/(\w*):=:(.*):=:(.*):=:(.*):=:(.*):=:(.*):=:(.*):=:(.*)/) { $delid = $1; $name = $2; $price = $3; $kazu = $4; # #***** プルダウンメニュー ***************************** # $selectgoods= "\n"; print "\n"; } } print "
商品名金 額変更前変更後
$name$price$kazu$selectgoods
\n"; print "
\n"; &option; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "
\n"; print "
\n"; © exit; } #--------------------------# # 数量変更・削除実行 # #--------------------------# if ($cart eq '決 定') { open DB,">cart_log/$id.txt" || die "Could not open the file"; @all = $goods; foreach (@all) { s/\t+/\n/g; print DB $_; } close DB; open TEMP,"; close TEMP; open OUT,">cart_log/$id.txt" || die "Could not open the file"; foreach (@templine) { if (/(\w*):=:(.*):=:(.*):=:(.*)/) { $delid = $1; $name = $2; $price = $3; $kazu = $4; if ($kazu != 0) { print OUT "$_"; } } } close OUT; close TEMP; # &top_disp; &back_set(0); &top("あなたのカートの中身"); &disptop; © exit; } #--------------------------# # カートを空にする # #--------------------------# if ($cart eq 'カートを空にする') { if (-e "cart_log/$id.txt") { unlink "cart_log/$id.txt"; # 削除ボタンによるカートファイル削除 &cart_emp("カートを削除しました。","カートを削除しました。","トップページへ"); } else { &error("Not Found","指定ファイルが存在しません","BACK"); } } #--------------------------# # サブルーチン # #--------------------------# sub top { print "Content-type: text/html\n\n"; print "$_[0]$style$setting\n"; print "
\n"; } sub top_itiran{ print "Content-type: text/html\n\n"; print "$_[0]$style"; print "$setting\n"; print "
\n"; } sub errortop { print "Content-type: text/html\n\n"; print "$_[0]$setting"; print "

$_[1]

"; print "
\n"; print "
\n"; exit; } sub error { print "Content-type: text/html\n\n"; print "$_[0]$setting"; print "

$_[1]

"; print "
"; print "
\n"; print "\n"; print "\n"; print ""; print "\n"; print "
"; print ""; print "
\n"; print "
\n"; print "
\n"; exit; } sub error2 { print "Content-type: text/html\n\n"; print "$_[0]$setting"; print "

$_[1]

"; print "
\n"; print "
\n"; exit; } sub cart_emp { print "Content-type: text/html\n\n"; print "$_[0]$setting"; print "

$_[1]

"; print "
\n"; print "
\n"; exit; } sub option { print "\n"; } sub souryou1 { if ($total >= $souryou2) { $souryou_p = 0 ; } else { $souryou_p = $souryou1 ; } } sub souryou2 { $souryou_p = $souryou1 ; } sub check { open IN, "; $cartdisp = @lines; close IN; foreach (@lines) { if (/\d+/) { $item = ok; } } if ($item ne ok) { &error ("ERROR","カートは空です。","BACK"); exit; } } sub f_lock { if ($f_lock eq on) { flock($_[0], 2); seek($_[0], 0, 2); } } sub conv { &jcode'convert(*regname, 'sjis'); &jcode'convert(*regname2, 'sjis'); &jcode'convert(*add11, 'sjis'); &jcode'convert(*add12, 'sjis'); &jcode'convert(*add13, 'sjis'); &jcode'convert(*add21, 'sjis'); &jcode'convert(*add22, 'sjis'); &jcode'convert(*add23, 'sjis'); &jcode'convert(*comment, 'sjis'); &jcode'convert(*shiharai, 'sjis'); &jcode'convert(*zip, 'sjis'); &jcode'convert(*zip2, 'sjis'); &jcode'convert(*name, 'sjis'); } sub disptop { print "

$miseName


カートの中身\n"; print "

"; print <<"DISPTOP"; DISPTOP open CART, "; close CART; foreach (@lines) { if (/(\w*):=:(.*):=:(.*):=:(.*):=:(.*):=:(.*):=:(.*):=:(.*)/) { $delid = $1; $name = $2; $price = $3; $kazu = $4; $iro = $5; $vali1 = $6; $vali2 = $7; $omosa = $8; $subtotal = $price * $kazu; print "\n"; } } print "
商品名
備考(オプション等)
単価
数量
小計
$name$iro"; if ($vali1 ne ""){ print "
$vali1"; } if ($vali2 ne ""){ print "
$vali2"; } print "
$price$kazu$subtotal 円

"; ##レジにいく 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 "\n"; print "\n"; print "\n"; print "
\n"; &option; print "
\n\n"; } ############################################################################ # テンプレート1 詳細 ############################################################################ sub s_template1{ #カラーの取得 $colorlist = ""; if ($colors ne ""){ @clrs = split(/\//,$colors); $colorlist = ""; } #バリエーション1の取得 # $valilist1 = ""; # if ($dt13_1 ne "" && $dt13 ne ""){ # @clrs = split(/\//,$dt13_1); # $valilist1 = ""; # } #バリエーション2の取得 $valilist2 = ""; if ($dt15_1 ne "" && $dt15 ne ""){ @clrs = split(/\//,$dt15_1); $valilist2 = ""; } $price_ = $price; &comma($price_); print <<"HTML_DISP";
 
HTML_DISP ########################## 商品情報 print <<"HTML_DISP"; \n"; } else{ print "\n"; } print <<"HTML_DISP";
HTML_DISP if($picture1 ne ""){ print "
商品名 $name
カラー $colorlist
商品記号 $goods_id
$dt13 $dt13_1 
$dt15 $valilist2 
   
価格(税込) $price_円
 
HTML_DISP if($dt17 ne ""){ print "メーカーの詳細はこちら\n"; } print <<"HTML_DISP";
HTML_DISP if ($dt18 eq "1"){ print "
申\し訳ございません。只今、在庫がございません。
\n"; } else{ print "
\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "
\n"; } print <<"HTML_DISP";
HTML_DISP ###################### print "\n"; print "\n"; print "
"; if ($picture2 ne ''){ print "写真2\n"; } if ($picture3 ne ''){ print " 写真3\n"; } print "
\n"; ###################### print <<"HTML_DISP";
詳 細 & 備 考

$memo2

$memo

 
HTML_DISP #********************** # レビュー 一覧 print "

 

"; print "
お客様の声
"; Se::DBOpen("REVIEW","$reviewDir$page_id".'.csv'); Se::Execute("SELECT * FROM REVIEW WHERE GOODS_ID = \"$goods_id\""); print "
\n"; while(Se::Fetch($date[0],$date[1],$date[2],$date[3]) == 0){ print ""; print ""; print "
"; $date[3] =~ s/\r\n/
/g; $date[3] =~ s/\r/
/g; $date[3] =~ s/\n/
/g; print "
$date[3]
"; if ($date[2] ne ''){ print ""; } else{ print " "; } print "
"; print "
\n"; } print "$copyright\n"; } # sub copy { # 左記タグは残しておいてください。 print "
\n"; # 左記タグは残しておいてください。 print "\n"; # 左記タグは残しておいてください。 } # 左記タグは残しておいてください。 ###### sub back_set{ $back_ = 'cart_pro.cgi?page_id='.$MYDATA{'fpath'}; } # ##### 金額の区切り処処理 # sub comma { $len=length($_[0])-3; for($icomma=$len;$icomma>0;$icomma=$icomma-3){ $tmp=substr($_[0],0,$icomma); substr($_[0],0,$icomma)="$tmp,"; } } sub mailsend2{ open(MAIL,"| /usr/sbin/sendmail $user2"); print MAIL "From: $email\n"; print MAIL "Subject: $subject\n"; print MAIL "---------------------------------------------------------------\n"; print MAIL " ご注文主の情報\n"; print MAIL "---------------------------------------------------------------\n"; print MAIL "ご注文No. = $id\n"; print MAIL "お名前 = $regname\n"; print MAIL "電子メール = $email\n"; print MAIL "郵便番号1 = $zip\n"; print MAIL "ご住所1 = $add11\n"; print MAIL "ご住所2 = $add12\n"; print MAIL "ご住所3 = $add13\n"; print MAIL "お電話1 = $tel\n"; print MAIL "お支払方法 = $shiharai\n"; print MAIL "---------------------------------------------------------------\n"; print MAIL "連絡事項\n"; print MAIL "$comment\n"; print MAIL "__end__\n"; if ($regname2 ne "") { print MAIL "---------------------------------------------------------------\n"; print MAIL " お届け先の情報\n"; print MAIL "---------------------------------------------------------------\n"; print MAIL "お名前2 = $regname2\n"; print MAIL "郵便番号2 = $zip2\n"; print MAIL "ご住所21 = $add21\n"; print MAIL "ご住所22 = $add22\n"; print MAIL "ご住所23 = $add23\n"; print MAIL "お電話2 = $tel2\n"; } print MAIL "---------------------------------------------------------------\n"; print MAIL " 商品情報 \n"; print MAIL "---------------------------------------------------------------\n"; open IN, "; close IN; $cnt=0; foreach (@lines) { if (/(\w*):=:(.*):=:(.*):=:(.*):=:(.*):=:(.*):=:(.*):=:(.*)/) { $goods_id = $1; $name = $2; $price = $3; $kazu = $4; $iro = $5; $vali1 = $6; $vali2 = $7; $omosa = $8; $subtotal = $price * $kazu; ++$cnt; print MAIL "商品 = $cnt;$name;$price;$kazu;$subtotal;"; if ($iro ne ""){ print MAIL "$iro"; } if ($vali1 ne ""){ print MAIL ":$vali1"; } if ($vali2 ne ""){ print MAIL ":$vali2"; } print MAIL "\n"; print MAIL "商品名 $cnt $name $iro $vali1 $vali2\n"; print MAIL " $price X $kazu = $subtotal 円\n"; print MAIL "---------------------------------------------------------------\n"; } } print MAIL "---------------------------------------------------------------\n"; print MAIL " 金額情報 \n"; print MAIL "---------------------------------------------------------------\n"; print MAIL " 合計 $MYDATA{'total1'} 円 \n"; print MAIL "---------------------------------------------------------------\n"; print MAIL "---------------------------------------------------------------\n"; print MAIL "商品合計 = $total 円\n"; if ($tax_in eq 'on'){ print MAIL "消費税 = $tax_ 円\n"; } # print MAIL "送料 = $souryou_p 円\n"; print MAIL "お支払い合計= $tax 円\n"; print MAIL "---------------------------------------------------------------\n"; print MAIL "Remote host: $ENV{'REMOTE_HOST'}\n"; print MAIL "User Agent : $ENV{'HTTP_USER_AGENT'}\n"; close(MAIL); } __END__