#! /usr/local/bin/perl # # 注文データ入力 # 1.注文入力 # 2.確認表示 # 3.メール送信 # 4.確認書返信    # # id=order.cgi # # update=2001.03.25 # # 消費税項目追加 00.11.3 # バグ修正・・・のしと支払い方法送信 # 日本語コード変換ライブラリ(v2.0)の指定 # (このCGIと同じディレクトリに設置する場合は、'./jcode.pl'でよい) # &ReadParse命令で、$in{ }の変数にフォーム入力データが格納される require 'cgi-lib.pl'; require 'jcode.pl'; &ReadParse; # 設置するURLを設定 $reload = 'http://www0.kumagaya.or.jp/cgi-bin/users/chichibu/order.cgi'; # 画像ファイルディレクトリ $dir="/dialup/chichibu/gazo/"; $sendmail = '/usr/lib/sendmail'; # メールの送り先 $myaddress = 'chichibu@po.kumagaya.or.jp'; # 商品名テーブルセット(普通の配列でも良い) $hinmei{1} = "秩父錦・純米大吟醸 1.8L"; $hinmei{2} = "秩父錦・上撰大吟醸 1.8L"; $hinmei{3} = "秩父錦・純米酒 1.8L"; $hinmei{4} = "秩父錦・純米酒 720mL"; $hinmei{5} = "秩父錦・純米酒『秩父米』1.8L"; $hinmei{6} = "秩父錦・純米酒『秩父米』720mL"; # 価格テーブルセット $tanka[1]=4855; $tanka[2]=4175; $tanka[3]=1940; $tanka[4]=970; $tanka[5]=1940; $tanka[6]=970; $noshi[0]="なし"; $noshi[1]="御中元"; $noshi[2]="御歳暮"; $noshi[3]="御祝い"; $noshi[4]="内祝い"; $noshi[5]="御見舞い"; $noshi[6]="その他"; $noshinm[1]="ご依頼主のお名前"; $noshinm[2]="ご依頼主の姓のみ"; $noshinm[3]="その他"; $shiharai[1]="郵便振込"; $shiharai[2]="代金着払い"; # 税率 $zeiritu=0.05; # デバッグモードは、on $test=""; #################################### # # # メインルーチン(処理の分岐) # # # #################################### # 全体の流れを決定する if ($in{'action'} eq 'first') { &first; } elsif ($in{'action'} eq 'check') { ✓ } elsif ($in{'action'} eq 'send') { &sendmail; } else { &first; } ############################################# # # # 最初に表示する画面(注文書画面)    # # # ############################################# sub first { print "Content-type: text/html\n\n"; print < ご注文メール 10/14

ご注文メール (1)


ご注文方法

1.ご注文する商品の、ご注文数入力欄に数量を指定して下さい。11本以上のご注文は、半角数字でご入力して下さい。
2.ご依頼主欄を必ず記入してください。(電話番号又はメールアドレスどちらか必ず入力して下さい)
3.のし種類欄は、ご希望の「のし」をクリックして下さい。ご希望の種類が無い場合は、その他をクリックしてご希望の文字を入力して下さい。
4.お支払い方法欄は、ご希望のお支払い方法を選択して下さい。(代金着払いと郵便振込によるご送金があります)
5.備考欄は、ご依頼・ご意見・ご質問等何かありましたらご記入下さい。

6.入力を終えましたら「入力終了」ボタンを押して下さい。(この時点では送信されません)
7.次に、ご注文確認画面が表示されます。
8.ご注文内容に間違えがなければ「ご注文送信」ボタンを押して下さい。(送信されます)
9.画面が変わり、「送信を完了しました。」と表示します。
10.別のご注文がいらっしゃる方は同じ画面内の「最初の画面に戻ります」ボタンを押してご注文をお願いいたします。

ご注文商品
商品写真 商品名・特徴・価格(税抜き) ご注文数入力欄

秩父錦・純米大吟醸

最良の好適米を使い、丹念に磨き上げた手作りの酒。
まろやかな香味が口の中に優しく広がる逸品です。


容量 1800ml  4,855円

商品番号 1

▼をクリックし数量一覧から注文数をクリックします。



11本以上のご注文の場合は、下に入力して下さい

(注)数字は半角数字でお願いします。

秩父錦・上撰大吟醸

杜氏の持っている技の全てを注いで作られた作品。
すっきりとした軽快な飲み口です。


容量 1800ml  4,175円

商品番号 2

▼をクリックし数量一覧から注文数をクリックします。



11本以上のご注文の場合は、下に入力して下さい

(注)数字は半角数字でお願いします。

秩父錦・純米酒

ほどよいコクと軽快でなめらかな飲み口。
魚料理や海老、貝料理と相性が良い。


容量 1800ml  1,940円
商品番号 3

容量  720ml    970円
商品番号 4
・容量 1800mlのご注文
▼をクリックし数量一覧から注文数をクリックします。


11本以上のご注文の場合は、下に入力して下さい
(注)数字は半角数字でお願いします。

・容量  720mlのご注文
▼をクリックし数量一覧から注文数をクリックします。

11本以上のご注文の場合は、下に入力して下さい
(注)数字は半角数字でお願いします。

秩父錦・純米酒『秩父米』

秩父産の米を原料に使い、丁寧に仕込んだ純米酒。
深い味わい、美酒と評判。


容量 1800ml  1,940円
商品番号 5

容量  720ml    970円
商品番号 6
・容量 1800mlのご注文
▼をクリックし数量一覧から注文数をクリックします。


11本以上のご注文の場合は、下に入力して下さい
(注)数字は半角数字でお願いします。

・容量  720mlのご注文
▼をクリックし数量一覧から注文数をクリックします。

11本以上のご注文の場合は、下に入力して下さい
(注)数字は半角数字でお願いします。


ご依頼主 (ご依頼主とご請求先、お届け先が同一の場合はこの欄のみの入力です)
お名前(漢字)
お名前(ふりがな)
郵便番号
ご住所
電話番号(市外局番から)
メールアドレス(半角入力)


ご請求先 (未入力時、ご依頼主にご請求させていただきます。)
お名前(漢字)
お名前(ふりがな)
郵便番号
ご住所
電話番号(市外局番から)


お届け先 (未入力時、ご依頼主にお届けさせていただきます。)
お名前(漢字)
お名前(ふりがな)
郵便番号
ご住所
電話番号(市外局番から)


のし種類(複数選択の場合は備考に、その旨ご入力下さい)
なし   御中元  御歳暮  御祝い  内祝い  お見舞い
その他 

のし紙のお名前(複数の場合は備考に、その旨ご入力下さい)
ご依頼主のお名前  ご依頼主の姓のみ  
その他 


お支払い方法



備 考



(注意)20歳未満の方がお酒を購入することは、法律で禁じられています。

ご注文内容を入力終了しましたら次に、入力終了ボタンをクリックして下さい。
クリック後、ご注文確認画面となります。(この時点では未送信です)
 

EOM } ############################################# # # # 入力データ確認表示画面ルーチン     # # # ############################################# sub kakunin { print "Content-type: text/html\n\n"; print < ご注文データの確認

ご注文データの確認

EOM print '
'; # 送信する print '
' . "\n"; # 表作成 print ''."\n"; print ""; print '"; print '"; print '"; print '"; print ""; $suryo=0; # 合計数量 $total=0; # 合計金額 for ($i=1; $i<=6; $i++) { # タグの無効化 $ckdt=$in{inpsu.$i} ; &tagck ; $inpsu=$ckdt; # SELECT数が0で入力数量がある場合 if ($in{selsu.$i} == 0 && $inpsu > 0) { $in{selsu.$i} = $inpsu ; } if ($in{selsu.$i} > 0) { print ""; #ご注文商品名 print '"; # 単価 print '"; # 数量 print '"; # 金額計算 $kingak=$in{selsu.$i} * $tanka[$i]; print '"; print ""; # 数量加算 $suryo = $suryo + $in{selsu.$i}; # 金額加算 $total = $total + $kingak; $order='ご注文商品名:'.$hinmei{$i}.' 数量:'.$in{selsu.$i}.' 本 金額: '.$kingak.'円'."\n"; print '' . "\n"; } # end of if } # end of for # 注文合計 print ""; print '"; print '"; print '"; print ""; # 消費税 $tax=$total * $zeiritu; # 切り捨て ($tax,$dummy)=split(/\./,$tax); print ""; print '"; print '"; print ""; # 税込み合計 $goukei=$total + $tax; print ""; print '"; print '"; print '"; print ""; print "
'."\n"; print ''."\n"; print 'ご注文商品名'; print ''; print "'."\n"; print ''."\n"; print '価格'; print ''; print "'."\n"; print ''."\n"; print 'ご注文数量'; print ''; print "'."\n"; print ''."\n"; print '金額'; print ''; print "
'."\n"; print ''."\n"; print $hinmei{$i}; print ''; print "'."\n"; print ''."\n"; print $tanka[$i]; print ''; print "'."\n"; print ''."\n"; print $in{selsu.$i}; print ''; print "'."\n"; print ''."\n"; print $kingak; print ''; print "
'."\n"; print ''."\n"; print '商品計'; print ''; print "'."\n"; print ''."\n"; print $suryo; print ''; print "'."\n"; print ''."\n"; print $total; print ''; print "
'."\n"; print ''."\n"; print '消費税'; print ''; print "'."\n"; print ''."\n"; print $tax; print ''; print "
'."\n"; print ''."\n"; print '合 計'; print ''; print "'."\n"; print ''."\n"; print $suryo; print ''; print "'."\n"; print ''."\n"; print $goukei; print ''; print "
"; $ordertotal="・商品計: $total円"."\n"; $ordertax="・消費税: $tax円"."\n"; $ordergoukei="●合 計: $goukei円"."\n"; print '' . "\n"; print '' . "\n"; print '' . "\n"; print '
'; print ''; print "** ご依頼主 **"."\n"; print ''; print '
'; # タグの無効化 $ckdt=$in{'ira-namek'} ; &tagck ; $in{'ira-namek'}=$ckdt; $ckdt=$in{'ira-namef'} ; &tagck ; $in{'ira-namef'}=$ckdt; $ckdt=$in{'ira-yubin'} ; &tagck ; $in{'ira-yubin'}=$ckdt; $ckdt=$in{'ira-addr'} ; &tagck ; $in{'ira-addr'}=$ckdt; $ckdt=$in{'ira-tel'} ; &tagck ; $in{'ira-tel'}=$ckdt; $ckdt=$in{'ira-email'} ; &tagck ; $in{'ira-email'}=$ckdt; $ckdt=$in{'sei-namek'} ; &tagck ; $in{'sei-namek'}=$ckdt; $ckdt=$in{'sei-namef'} ; &tagck ; $in{'sei-namef'}=$ckdt; $ckdt=$in{'sei-yubin'} ; &tagck ; $in{'sei-yubin'}=$ckdt; $ckdt=$in{'sei-addr'} ; &tagck ; $in{'sei-addr'}=$ckdt; $ckdt=$in{'sei-tel'} ; &tagck ; $in{'sei-tel'}=$ckdt; $ckdt=$in{'tod-namek'} ; &tagck ; $in{'tod-namek'}=$ckdt; $ckdt=$in{'tod-namef'} ; &tagck ; $in{'tod-namef'}=$ckdt; $ckdt=$in{'tod-yubin'} ; &tagck ; $in{'tod-yubin'}=$ckdt; $ckdt=$in{'tod-addr'} ; &tagck ; $in{'tod-addr'}=$ckdt; $ckdt=$in{'tod-tel'} ; &tagck ; $in{'tod-tel'}=$ckdt; # のしのその他 $ckdt=$in{'sonota'} ; &tagck ; $in{'sonota'}=$ckdt; # のし紙のその他名 $ckdt=$in{'sonotanm'} ; &tagck ; $in{'sonotanm'}=$ckdt; print ''."\n"; print ''; print ''."\n"; print ''; print ''."\n"; print ''; print ''."\n"; print ''; print ''."\n"; print ''; print ''."\n"; print ''; print ''."\n"; print ''; print '
お名前(漢字)'."\n"; print $in{'ira-namek'}; print ' 様'; print '
お名前(ふりがな)'."\n"; print $in{'ira-namef'}; print '
郵便番号'."\n"; print $in{'ira-yubin'}; print '
ご住所'."\n"; print $in{'ira-addr'}; print '
電話番号(市外局番から)'."\n"; print $in{'ira-tel'}; print '
メールアドレス(半角入力)'."\n"; print $in{'ira-email'}; print '
'; print '
'; print ''; print "** ご請求先 **"."\n"; print ''; print '
'; print ''."\n"; print ''; print ''."\n"; print ''; print ''."\n"; print ''; print ''."\n"; print ''; print ''."\n"; print ''; print ''."\n"; print ''; print '
お名前(漢字)'."\n"; if (length($in{'sei-namek'}) > 1) { print $in{'sei-namek'}; print ' 様';} else { print 'ご依頼主様と同じ'; } print '
お名前(ふりがな)'."\n"; print $in{'sei-namef'}; print '
郵便番号'."\n"; print $in{'sei-yubin'}; print '
ご住所'."\n"; if (length($in{'sei-addr'}) > 1) { print $in{'sei-addr'}; } else { print 'ご依頼主様と同じ'; } print '
電話番号(市外局番から)'."\n"; print $in{'sei-tel'}; print '
'; print '
'; print ''; print "** お届け先 **"."\n"; print ''; print '
'; print ''."\n"; print ''; print ''."\n"; print ''; print ''."\n"; print ''; print ''."\n"; print ''; print ''."\n"; print ''; print ''."\n"; print ''; print '
お名前(漢字)'."\n"; if (length($in{'tod-namek'}) > 1) { print $in{'tod-namek'}; print ' 様';} else { print 'ご依頼主様と同じ'; } print ' 様'; print '
お名前(ふりがな)'."\n"; print $in{'tod-namef'}; print '
郵便番号'."\n"; print $in{'tod-yubin'}; print '
ご住所'."\n"; if (length($in{'tod-addr'}) > 1) { print $in{'tod-addr'}; } else { print 'ご依頼主様と同じ'; } print '
電話番号(市外局番から)'."\n"; print $in{'tod-tel'}; print '
'; print '
'; print '
'; $sno=$in{'noshi'}; if ($sno == 6) { $noshi[$sno] = $in{'sonota'} } print "のし:$noshi[$sno]"."\n"; print '

'; $sno=$in{'noshinm'}; if ($sno == 3) { $noshinm[$sno] = $in{'sonotanm'}; } print "のし紙のお名前:$noshinm[$sno]"."\n"; # 送信用 $noshimei=$noshinm[$sno]; print '

'; $sno=$in{'shiharai'}; print "お支払い方法:$shiharai[$sno]"."\n"; # 送信用 $shiharaimei=$shiharai[$sno]; print '
'; print '
'; print "備考:$in{'bikou'}"."\n"; 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 '' . "\n"; print '' . "\n"; print '' . "\n"; print '' . "\n"; print '' . "\n"; print '' . "\n"; print '' . "\n"; # 処理日時 ($t1,$t2,$t3,$sysdd,$sysmm,$sysyy,$t7) = localtime; # 年4桁化 $sysyy = $sysyy + 1900; # 月補正 $sysmm++; # 2桁にする $t1 = sprintf("%.2d",$t1); $t2 = sprintf("%.2d",$t2); $t3 = sprintf("%.2d",$t3); $nichiji = '送信日時:'.$sysyy.'年'.$sysmm.'月'.$sysdd.'日 '.$t3.'時'.$t2.'分'; print '' . "\n"; print '' . "\n"; print ''."\n"; print "
\n"; # 取消する print '
' . "\n"; print '' . "\n"; print ''."\n"; print "
\n"; print "\n"; print "\n"; } # # タグの無効化サブルーチン # sub tagck { $ckdt =~ s//>/ig; $ckdt =~ s///ig; } ########################################## # # # 入力されたデータのチェックルーチン # # # ########################################## sub check { # 名前チェック if ($in{'ira-namek'} eq "" ) { &error(1); } # 住所チェック if ($in{'ira-addr'} eq "") { &error(2); } # 電話またはemailどちらか必須 if ($in{'ira-tel'} eq "" && $in{'ira-email'}) { &error(3); } # 電話番号チェック if (length($in{'ira-tel'}) < 10) { &error(5); } # 英数字と@と.と_と-(大文字と小文字の違いを無視するiフラグ) if ($in{'ira-email'} =~ /[^a-z0-9@._-]/i) { &error(4); } # メールアドレスが入力されたとき1つの@とその後ろに.が含まれているばOKでそうでないならエラー if ($in{'ira-email'} ne "") { if (!($in{'ira-email'} =~ /.*\@.*\..*/)) { &error(4); }} # メールアドレスが短すぎる場合 if ($in{'ira-email'} ne "") {if (length($in{'ira-email'}) < 6) { &error(4); }} # チェック通過 &kakunin; } ############################################# # # # チェックエラー表示画面ルーチン      # # # ############################################# sub error { # &error(xx); で呼び出されたルーチンは、()内の数字が $error に代入される。 $error = $_[0]; if ($error eq "1") { $error_msg = 'ご依頼主のお名前が正しく入力されていません。'; } elsif ($error eq "2") { $error_msg = 'ご依頼主のご住所が正しく入力されていません。'; } elsif ($error eq "3") { $error_msg = 'ご依頼主の電話番号又はメールアドレスどちらかはご入力下さい。'; } elsif ($error eq "4") { $error_msg = 'ご依頼主のメールアドレスが正しく入力されていません。'; } elsif ($error eq "5") { $error_msg = 'ご依頼主の電話番号が正しく入力されていません。'; } print "Content-type: text/html\n\n"; print '注文データ入力エラー' . "\n"; print '' . "\n"; print '

注文データ入力で下記のエラーが発生しました

' . "\n"; print "$error_msg\n"; print '
'; # リロードでもどると入力データが消えてしまうので print 'ブラウザ画面の戻るをクリックする'."\n";; # 確認用 if ($test eq "on") { print '
'; print '入力の確認表示

' . "\n"; print '
'; print 'action: '.$in{'action'}.''."\n"; print '
'; print 'name: '.$in{'name'}.''."\n"; print '
'; print 'email: '.$in{'email'}.''."\n"; print '
'; print 'biko: '.$in{'comment'}.''."\n"; print '
'; print '

' . "\n"; } # if exit; } # error ############################################# # # # メール送信ルーチン           # # # ############################################# sub sendmail { $message = <\n"; print "\n"; print "order.cgi \n"; print "\n"; print ''."\n"; print '送信を完了しました。ありがとうございました'."\n"; print '

' . "\n"; print '' . "\n"; print ''."\n"; print "
\n"; print "\n"; print "\n"; } # sendmail