#! /usr/local/bin/perl
#
# 注文データ入力の練習2(買い物かご方式の1画面パターン)
# 1.注文入力
# 2.確認表示
# 3.メール送信(管理者と送り主)
#
# id=orderk2.cgi
#
# update=2001.03.25
# バグ修正・・・のしと支払い方法送信
# 日本語コード変換ライブラリ(v2.0)の指定
# (このCGIと同じディレクトリに設置する場合は、'./jcode.pl'でよい)
# &ReadParse命令で、$in{ }の変数にフォーム入力データが格納される
require 'cgi-lib.pl';
require 'jcode.pl';
&ReadParse;
# 設置するURLを設定
$reload = ''http://xxx/orderk2.cgi';
# 画像ファイルディレクトリ
$dir="gazo/";
# 商品名テーブルセット
$hinmei[1] = "秩父錦・純米大吟醸 1.8L";
$hinmei[2] = "秩父錦・上撰大吟醸 1.8L";
$hinmei[3] = "秩父錦・純米酒 1.8L";
# 価格テーブルセット
$tanka[1]=4855;
$tanka[2]=4175;
$tanka[3]=1940;
# かごの中をどこに表示させるか
# 上1、下2、なし0(1.2以外)
$ichi="1";
# メールの送り先
#$sendmail = '/usr/lib/sendmail';
$myaddress ='[email protected]';
# 税率
$zeiritu=0.05;
$noshi[0]="なし";
$noshi[1]="御中元";
$noshi[2]="御歳暮";
$noshi[3]="御祝い";
$noshi[4]="内祝い";
$noshi[5]="御見舞い";
$noshi[6]="その他";
$noshinm[1]="ご依頼主のお名前";
$noshinm[2]="ご依頼主の姓のみ";
$noshinm[3]="その他";
$shiharai[1]="郵便振込";
$shiharai[2]="代金着払い";
# デバッグモードは、on
$test="";
####################################
# #
# メインルーチン(処理の分岐) #
# #
####################################
# 全体の流れを決定する
# 前回までの注文データ(1番最初は無意味ですが、それ以外は共通なのでここに置いた)
$order=$in{order};
if ($in{'action'} eq 'order') { ℴ }
# 初期画面
elsif ($in{'action'} eq 'first') { &first; }
# かごに追加
elsif ($in{'action'} eq 'kago') { &kago; }
# かごの中を表示
elsif ($in{'action'} eq 'kagocheck') { &kagocheck; }
# かごの中の訂正・削除
elsif ($in{'action'} eq 'kagocheck2') { &kagocheck2; &kagocheck;}
# 注文の確定
elsif ($in{'action'} eq 'kakutei') { &kakutei; }
# 住所入力
elsif ($in{'action'} eq 'jusho') { &jusho; }
elsif ($in{'action'} eq 'check') { ✓ }
elsif ($in{'action'} eq 'send') { &sendmail; }
# 最初の処理
else { &syokika; }
#############################################
# #
# 初回の初期化処理 #
# #
#############################################
sub syokika {
# 注文データの初期化
$order="";
&first;
} # syokika
#############################################
# #
# 最初に表示する画面(注文書画面) #
# #
#############################################
sub first {
print "Content-type: text/html\n\n";
print <<EOM;
<HTML>
<META HTTP-EQUIV="Content-type" CONTENT="text/html;
charset=x-euc-jp">
<HEAD>
<TITLE>ご注文メール</TITLE>
</HEAD>
<BODY BGCOLOR="#CCffff">
<FONT SIZE=4 COLOR=#000000>
<CENTER>
<PRE><H2>ご注文方法の説明</H2></PRE>
</CENTER>
<HR SIZE=3 WIDTH=100%>
いらっしゃいませ。 毎度ご利用頂きありがとうございます。
<BR>
下のご注文方法をお読みになり、『注文画面に進む』をクリックしてお進みくださいませ。
<BR><BR>
<B>ご注文方法</B>
<BR><BR>
<FONT COLOR=#0000FF>
1.ご注文する商品が決まりましたら、数量を選択し、『かごに入れる』をクリックしてください。
<BR>
(数量が1で良い場合は、変更する必要はありません)
<BR>
2.引き続き、ご注文する商品をお選びください。
<BR>
3.かごに入れた商品は、いつでも確認と変更・取消ができます。
<BR>
その場合は『かごの中を見る』をクリックして下さい。
<BR>
4.ご注文の確定は、『かごの中を見る』をクリックし、『ご注文の確定』をクリックして下さい。
</FONT>
<BR><BR>
<HR SIZE=3 WIDTH=100%>
EOM
print '<form method="post" action="' . $reload . '">' . "\n";
print '<input type=hidden name="action" value="order">'."\n";
print '<DD><INPUT TYPE="SUBMIT" VALUE="注文画面に進む">'."\n";
print '</DL>'."\n";
print '</BODY>'."\n";
print '</HTML>'."\n";
} # first
#################################
# hiddenパラメータ共通項目 #
#################################
sub hidpara {
print '<input type=hidden name="order" value="'.$order.'">'."\n";
} # end of hidpara
#########################
# #
# 注文する画面 #
# #
#########################
sub order {
print "Content-type: text/html\n\n";
print <<EOM;
<HTML>
<HEAD><TITLE>ご注文画面</TITLE></HEAD>
<BODY BGCOLOR="#ffffff">
<H2>ご注文画面</H2>
EOM
# かごの中を表示
if ($ichi eq "1") { &display; }
# 該当データが0件の場合は表示しない
if ($order ne "") {
print '<BR>'."\n";
# ボタンを並べる
print '<TABLE WIDTH="80%" >';
print '<TR VALIGN="BOTTOM">';
print '<TD>';
print '<form method="post" action="' . $reload . '">' . "\n";
print '<input type=hidden name="action" value="first">'."\n";
print '<INPUT TYPE="SUBMIT" VALUE="注文を中止して最初に戻る">'."\n";
print '</FORM>'."\n";
print '</TD><TD> </TD><TD>';
print '<form method="post" action="' . $reload . '">' . "\n";
print '<input type=hidden name="action" value="kagocheck">'."\n";
&hidpara;
print '<INPUT TYPE="SUBMIT" VALUE=" 注文内容の訂正・削除 ">'."\n";
print '</FORM>'."\n";
print '</TD><TD> </TD><TD>';
print '<form method="post" action="' . $reload . '">' . "\n";
print '<input type=hidden name="action" value="kakutei">'."\n";
&hidpara;
print '<INPUT TYPE="SUBMIT" VALUE="ご注文の確定">'."\n";
print '</FORM>'."\n";
print '</TD></TR>';
print '</TABLE>';
} # if
print '<BODY><TABLE BORDER="1" CELLSPACING="1" CELLPADDING="1"
WIDTH="100%">' . "\n";
print '<TH LIGN="CENTER" VALIGN="MIDDLE">商品写真</TH>' . "\n";
print '<TH LIGN="CENTER" VALIGN="MIDDLE">商品名・特徴・価格(税抜き)</TH>' .
"\n";
print '<TH LIGN="CENTER" VALIGN="MIDDLE">ご注文数入力欄</TH>' . "\n";
#
print '<TR ALIGN="CENTER" VALIGN="MIDDLE">'."\n";
print '<TD><IMG SRC="sake1.gif" HEIGHT="190"
WIDTH="120"></TD>'."\n";
print '<TD ALIGN="CENTER" VALIGN="TOP">'."\n";
print '<BR>'."\n";
print '<FONT SIZE=5 COLOR=#0000FF>'.$hinmei[1].'</FONT>'."\n";
print '<BR><BR><FONT SIZE=2
COLOR=#660000>最良の好適米を使い、丹念に磨き上げた手作りの酒。'."\n";
print '<BR>まろやかな香味が口の中に優しく広がる逸品です。</FONT>'."\n";
print '<BR><BR>'."\n";
print '<FONT SIZE=4 COLOR=#660000>容量 1800ml</FONT>'."\n";
print '<FONT SIZE=4
COLOR=#0000FF><B> 4,855円</B></FONT>'."\n";
print '<BR><BR>'."\n";
print '<FONT SIZE=2 COLOR=#660000>商品番号 1</FONT>'."\n";
print '</TD>'."\n";
print '<form method="post" action="' . $reload . '">' . "\n";
print '<input type=hidden name="action" value="kago">'."\n";
print '<input type=hidden name="syohin" value="1">'."\n";
&hidpara;
print '<TD ALIGN="CENTER" VALIGN="TOP">'."\n";
print '<BR><FONT SIZE=2
COLOR=#660000>▼をクリックし数量一覧から<BR>注文数をクリックします。</FONT>'."\n";
print '<BR><BR>'."\n";
print '<SELECT NAME="selsu" >'."\n";
print '<OPTION VALUE="1" SELECTED>1本'."\n";
print '<OPTION VALUE="2">2本'."\n";
print '<OPTION VALUE="3">3本'."\n";
print '<OPTION VALUE="4">4本'."\n";
print '<OPTION VALUE="5">5本'."\n";
print '<OPTION VALUE="6">6本'."\n";
print '<OPTION VALUE="7">7本'."\n";
print '<OPTION VALUE="8">8本'."\n";
print '<OPTION VALUE="9">9本'."\n";
print '<OPTION VALUE="10">10本'."\n";
print '</SELECT>'."\n";
print '<BR><BR>'."\n";
print '<input type=submit value="かごに入れる">' . "\n";
print '</FORM>'."\n";
print '</TD>'."\n";
print '</TR>'."\n";
##############
print '<TR ALIGN="CENTER" VALIGN="MIDDLE">'."\n";
print '<TD><IMG SRC="sake1.gif" HEIGHT="190"
WIDTH="120"></TD>'."\n";
print '<TD ALIGN="CENTER" VALIGN="TOP">'."\n";
print '<BR>'."\n";
print '<FONT SIZE=5 COLOR=#0000FF>'.$hinmei[2].'</FONT>'."\n";
print '<BR><BR><FONT SIZE=2
COLOR=#660000>杜氏の持っている技の全てを注いで作られた作品。'."\n";
print '<BR>すっきりとした軽快な飲み口です。</FONT>'."\n";
print '<BR><BR>'."\n";
print '<FONT SIZE=4 COLOR=#660000>容量 1800ml</FONT>'."\n";
print '<FONT SIZE=4
COLOR=#0000FF><B> 4,175円</B></FONT>'."\n";
print '<BR><BR>'."\n";
#
print '<FONT SIZE=2 COLOR=#660000>商品番号 2</FONT>'."\n";
print '</TD>'."\n";
print '<form method="post" action="' . $reload . '">' . "\n";
print '<input type=hidden name="action" value="kago">'."\n";
print '<input type=hidden name="syohin" value="2">'."\n";
&hidpara;
print '<TD ALIGN="CENTER" VALIGN="TOP">'."\n";
print '<BR><FONT SIZE=2
COLOR=#660000>▼をクリックし数量一覧から<BR>注文数をクリックします。</FONT>'."\n";
print '<BR><BR>'."\n";
print '<SELECT NAME="selsu" >'."\n";
print '<OPTION VALUE="1" SELECTED>1本'."\n";
print '<OPTION VALUE="2">2本'."\n";
print '<OPTION VALUE="3">3本'."\n";
print '<OPTION VALUE="4">4本'."\n";
print '<OPTION VALUE="5">5本'."\n";
print '<OPTION VALUE="6">6本'."\n";
print '<OPTION VALUE="7">7本'."\n";
print '<OPTION VALUE="8">8本'."\n";
print '<OPTION VALUE="9">9本'."\n";
print '<OPTION VALUE="10">10本'."\n";
print '</SELECT>'."\n";
print '<BR><BR>'."\n";
print '<input type=submit value="かごに入れる">' . "\n";
print '</FORM>'."\n";
print '</TD>'."\n";
print '</TR>'."\n";
print '<TR ALIGN="CENTER" VALIGN="MIDDLE">'."\n";
print '<TD><IMG SRC="sake1.gif" HEIGHT="190"
WIDTH="120"></TD>'."\n";
print '<TD ALIGN="CENTER" VALIGN="TOP">'."\n";
print '<BR>'."\n";
print '<FONT SIZE=5 COLOR=#0000FF>'.$hinmei[3].'</FONT>'."\n";
print '<BR><BR><FONT SIZE=2
COLOR=#660000>ほどよいコクと軽快でなめらかな飲み口。'."\n";
print '<BR>魚料理や海老、貝料理と相性が良い。</FONT>'."\n";
print '<BR><BR>'."\n";
print '<FONT SIZE=4 COLOR=#660000>容量 1800ml</FONT>'."\n";
print '<FONT SIZE=4
COLOR=#0000FF><B> 1,940円</B></FONT>'."\n";
print '<BR><BR>'."\n";
#
print '<FONT SIZE=2 COLOR=#660000>商品番号 3</FONT>'."\n";
print '</TD>'."\n";
print '<form method="post" action="' . $reload . '">' . "\n";
print '<input type=hidden name="action" value="kago">'."\n";
print '<input type=hidden name="syohin" value="3">'."\n";
&hidpara;
print '<TD ALIGN="CENTER" VALIGN="TOP">'."\n";
print '<BR><FONT SIZE=2
COLOR=#660000>▼をクリックし数量一覧から<BR>注文数をクリックします。</FONT>'."\n";
print '<BR><BR>'."\n";
print '<SELECT NAME="selsu" >'."\n";
print '<OPTION VALUE="1" SELECTED>1本'."\n";
print '<OPTION VALUE="2">2本'."\n";
print '<OPTION VALUE="3">3本'."\n";
print '<OPTION VALUE="4">4本'."\n";
print '<OPTION VALUE="5">5本'."\n";
print '<OPTION VALUE="6">6本'."\n";
print '<OPTION VALUE="7">7本'."\n";
print '<OPTION VALUE="8">8本'."\n";
print '<OPTION VALUE="9">9本'."\n";
print '<OPTION VALUE="10">10本'."\n";
print '</SELECT>'."\n";
print '<BR><BR>'."\n";
print '<input type=submit value="かごに入れる">' . "\n";
print '</FORM>'."\n";
print '</TD>'."\n";
print '</TR>'."\n";
#
# かごの中を表示
if ($ichi eq "2") { &display; }
print '</BODY>'."\n";
print '</HTML>'."\n";
} # order
#############################################
# #
# かごに入れるをクリックしたときの処理 #
# #
#############################################
sub kago {
# 今回注文のデータを-でつなぐ
# 区切り記号は自分の好きなもので良い、ここでは画面で確認しやすいものを使用しました。
$chumon="$in{syohin}-$in{selsu}";
# 注文データを$orderに,で連結する
if ($order eq "") { $order=$chumon }
else { $order="$order,$chumon" }
# 注文画面に戻る
ℴ
} # kago
#############################################
# #
# 注文データ分解サブルーチン #
# #
#############################################
sub bunkai {
# 1注文単位に分ける
@a = split(/,/,$bundt);
$kensu=@a;
# 次に、商品番号と注文数に分ける
$i=1;
foreach (@a) { ($orderno[$i],$ordersu[$i])= split(/-/,$_) ;$i++ }
} # bunkai
#############################################
# #
# かごの中の表示ルーチン #
# #
#############################################
sub display {
# 該当データが0件の場合
if ($order eq "") {
print '<BR><BR><FONT size=5 color="blue">';
print '<CENTER>ご注文データはありません。</CENTER></FONT>'."\n";
return } # end of if
# 1注文単位に分ける
$bundt=$order;
&bunkai;
# 変数確認
if ($test eq "on") {
print 'ご注文内容 $order=';
print $order;
print '<BR><BR>'."\n";
print "ご注文件数=$kensu\n";
print '<BR><BR>'."\n";
print "ご注文明細";
$i=1;
foreach (@a) {
print "№ $i\n";
print "商品番号=$orderno[$i]\n";
print '<BR>'."\n";
print "注文数量=$ordersu[$i]\n";
print '<BR>'."\n";
$i++ } # foreach
} # if
# 表作成
print '<TABLE BORDER WIDTH="100%">'."\n";
print "<TR>";
print '<TH ALIGN="MIDDLE">'."\n";
print '<FONT SIZE=4 COLOR=#0000FF>'."\n";
print 'ご注文商品名';
print '</FONT>';
print "</TH>";
print '<TH ALIGN="MIDDLE">'."\n";
print '<FONT SIZE=4 COLOR=#0000FF>'."\n";
print '価格';
print '</FONT>';
print "</TH>";
print '<TH ALIGN="MIDDLE">'."\n";
print '<FONT SIZE=4 COLOR=#FF0000>'."\n";
print 'ご注文数量';
print '</FONT>';
print "</TH>";
print '<TH ALIGN="MIDDLE">'."\n";
print '<FONT SIZE=4 COLOR=#FF0000>'."\n";
print '金額';
print '</FONT>';
print "</TH>";
print "</TR>";
$suryo=0; # 合計数量
$total=0; # 合計金額
for ($i=1; $i<=$kensu; $i++) {
print "<TR>";
#ご注文商品名
print '<TD ALIGN="MIDDLE">'."\n";
print '<FONT SIZE=4>'."\n";
print $hinmei[$orderno[$i]];
print '</FONT>';
print "</TD>";
# 単価
print '<TD ALIGN="MIDDLE">'."\n";
print '<FONT SIZE=4>'."\n";
print $tanka[$orderno[$i]];
print '</FONT>';
print "</TD>";
# 数量
print '<TD ALIGN="MIDDLE">'."\n";
print '<FONT SIZE=4 COLOR=#FF0000>'."\n";
print $ordersu[$i];
print '</FONT>';
print "</TD>";
# 金額計算
$kingak=$ordersu[$i] * $tanka[$orderno[$i]];
print '<TD ALIGN="RIGHT">'."\n";
print '<FONT SIZE=4 COLOR=#FF0000>'."\n";
print $kingak;
print '</FONT>';
print "</TD>";
print "</TR>";
# 数量加算
$suryo = $suryo + $ordersu[$i];
# 金額加算
$total = $total + $kingak;
} # end of for
# 合計数
print '<TD COLSPAN="2" ALIGN="MIDDLE">'."\n";
print '<FONT SIZE=5 COLOR=#0000FF>'."\n";
print '商品計';
print '</FONT>';
print "</TD>";
print '<TD ALIGN="MIDDLE">'."\n";
print '<FONT SIZE=5 COLOR=#FF0000>'."\n";
print $suryo;
print '</FONT>';
print "</TD>";
print '<TD ALIGN="RIGHT">'."\n";
print '<FONT SIZE=5 COLOR=#FF0000>'."\n";
print $total;
print '</FONT>';
print "</TD>";
print "</TR>";
# 消費税
$tax=$total * $zeiritu;
# 切り捨て
($tax,$dummy)=split(/\./,$tax);
print "<TR>";
print '<TD COLSPAN="3" ALIGN="MIDDLE">'."\n";
print '<FONT SIZE=5 COLOR="blue">'."\n";
print '消費税';
print '</FONT>';
print "</TD>";
print '<TD ALIGN="RIGHT">'."\n";
print '<FONT SIZE=5 COLOR="blue">'."\n";
print $tax;
print '</FONT>';
print "</TD>";
print "</TR>";
# 税込み合計
$goukei=$total + $tax;
print "<TR>";
print '<TD COLSPAN="2" ALIGN="MIDDLE">'."\n";
print '<FONT SIZE=5 COLOR=#0000FF>'."\n";
print '合 計';
print '</FONT>';
print "</TD>";
print '<TD ALIGN="MIDDLE">'."\n";
print '<FONT SIZE=5 COLOR=#FF0000>'."\n";
print $suryo;
print '</FONT>';
print "</TD>";
print '<TD ALIGN="RIGHT">'."\n";
print '<FONT SIZE=5 COLOR=#FF0000>'."\n";
print $goukei;
print '</FONT>';
print "</TD>";
print "</TR>";
print "</TABLE>";
} # display
#############################################
# #
# かごの中の確認表示ルーチン #
# #
#############################################
sub kagocheck {
# 該当データが0件の場合
if ($order eq "") {
ℴ
return;
} # end of if
print "Content-type: text/html\n\n";
print <<EOM;
<HTML>
<HEAD><TITLE>ご注文画面</TITLE></HEAD>
<BODY BGCOLOR="#ffffff">
<H2> かごの中の確認</H2>
EOM
# 1注文単位に分ける
$bundt=$order;
&bunkai;
# 変数確認
if ($test eq "on") {
print 'ご注文内容 $order=';
print $order;
print '<BR><BR>'."\n";
print "ご注文件数=$kensu\n";
print '<BR><BR>'."\n";
print "ご注文明細";
$i=1;
foreach (@a) {
print "№ $i\n";
print "商品番号=$orderno[$i]\n";
print '<BR>'."\n";
print "注文数量=$ordersu[$i]\n";
print '<BR>'."\n";
$i++ } # foreach
} # if
# 訂正入力用
print '<form method="post" action="' . $reload . '">' . "\n";
print '<input type=hidden name="action" value="kagocheck2">'."\n";
&hidpara;
# 表作成
print '<TABLE BORDER WIDTH="100%">'."\n";
print "<TR>";
print '<TH ALIGN="MIDDLE">'."\n";
print '<FONT SIZE=4 COLOR=#0000FF>'."\n";
print 'ご注文商品名';
print '</FONT>';
print "</TH>";
print '<TH ALIGN="MIDDLE">'."\n";
print '<FONT SIZE=4 COLOR=#0000FF>'."\n";
print '価格';
print '</FONT>';
print "</TH>";
print '<TH ALIGN="MIDDLE">'."\n";
print '<FONT SIZE=4 COLOR=#FF0000>'."\n";
print 'ご注文数量';
print '</FONT>';
print "</TH>";
print '<TH ALIGN="MIDDLE">'."\n";
print '<FONT SIZE=4 COLOR=#FF0000>'."\n";
print '金額';
print '</FONT>';
print "</TH>";
print '<TH ALIGN="MIDDLE">'."\n";
print '<FONT SIZE=4 COLOR=#FF0000>'."\n";
print '取消';
print '</FONT>';
print "</TH>";
print "</TR>";
$suryo=0; # 合計数量
$total=0; # 合計金額
for ($i=1; $i<=$kensu; $i++) {
print "<TR>";
#ご注文商品名
print '<TD ALIGN="MIDDLE">'."\n";
print '<FONT SIZE=4>'."\n";
print $hinmei[$orderno[$i]];
print '</FONT>';
print "</TD>";
# 単価
print '<TD ALIGN="MIDDLE">'."\n";
print '<FONT SIZE=4>'."\n";
print $tanka[$orderno[$i]];
print '</FONT>';
print "</TD>";
# 数量
print '<TD ALIGN="RIGHT">'."\n";
print '<FONT SIZE=4 COLOR=#FF0000>'."\n";
print '<INPUT NAME="inpsu'.$i.'" TYPE="Text" SIZE=4 MAXLENGTH=3
value='.$ordersu[$i].'>'."\n";
print '</FONT>';
print "</TD>";
# 金額計算
$kingak=$ordersu[$i] * $tanka[$orderno[$i]];
print '<TD ALIGN="RIGHT">'."\n";
print '<FONT SIZE=4 COLOR=#FF0000>'."\n";
print $kingak;
print '</FONT>';
print "</TD>";
# 削除
print '<TD ALIGN="MIDDLE">'."\n";
print '<INPUT TYPE="checkbox" name="del'.$i.'" value="1">';
print "</TD>";
print "</TR>";
# 数量加算
$suryo = $suryo + $ordersu[$i];
# 金額加算
$total = $total + $kingak;
} # end of for
# 合計数
print "<TR>";
print '<TD COLSPAN="2" ALIGN="MIDDLE">'."\n";
print '<FONT SIZE=5 COLOR=#0000FF>'."\n";
print '合 計';
print '</FONT>';
print "</TD>";
print '<TD ALIGN="MIDDLE">'."\n";
print '<FONT SIZE=5 COLOR=#FF0000>'."\n";
print $suryo;
print '</FONT>';
print "</TD>";
print '<TD ALIGN="RIGHT">'."\n";
print '<FONT SIZE=5 COLOR=#FF0000>'."\n";
print $total;
print '</FONT></TD>';
# 取消列のところに空白を入れる
print '<TD> </TD>';
print "</TR>";
print "</TABLE>";
print '<BR><BR>'."\n";
# 注文なしなら表示しない
if ($order ne "") {
# ボタンを並べる
print '<TABLE>';
print '<TR>';
print '<TD>';
print '<input type=submit value="訂正・削除の実行">' . "\n";
print '</TD><TD> </TD><TD>';
print '<input type=reset value="訂正内容取消">' . "\n";
print '</FORM>'."\n";
print '</TD><TD> </TD><TD>';
print '<form method="post" action="' . $reload . '">' . "\n";
print '<input type=hidden name="action" value="order">'."\n";
&hidpara;
print '<INPUT TYPE="SUBMIT" VALUE="注文画面に戻る">'."\n";
print '</FORM>'."\n";
print '</TD><TD> </TD><TD>';
print '<form method="post" action="' . $reload . '">' . "\n";
print '<input type=hidden name="action" value="kakutei">'."\n";
&hidpara;
print '<INPUT TYPE="SUBMIT" VALUE="ご注文の確定">'."\n";
print '</FORM>'."\n";
print '</TD></TR>';
print '</TABLE>';
} # if
print "</BODY>\n";
print "</HTML>\n";
} # kagocheck
#############################################
# #
# 注文データ訂正削除処理ルーチン #
# #
#############################################
sub kagocheck2 {
# 注文データ
$bundt=$in{order};
&bunkai;
$order="";
for ($i=1; $i<=$kensu; $i++) {
# checkbox オン なら削除
if ($in{del.$i} != 1) {
# 今回注文のデータをつなぐ
$chumon="$orderno[$i]-$in{inpsu.$i}";
# 注文データを$orderに,で連結する
if ($order eq "") { $order=$chumon }
else { $order="$order,$chumon" }
} # if
} # for
# 訂正後の注文データに入れかえる
$in{order}=$order;
} # kagocheck2
#################################
# #
# 注文データの確定画面 #
# #
#################################
sub kakutei {
print "Content-type: text/html\n\n";
print <<EOM;
<HTML>
<HEAD><TITLE>ご注文の確定</TITLE></HEAD>
<BODY BGCOLOR="#ffffff">
<H2>ご注文の確定</H2>
EOM
&display;
print '<BR><BR>'."\n";
# ボタンを並べる
print '<TABLE>';
print '<TR VALIGN="BOTTOM">';
print '<TD>';
print '<form method="post" action="' . $reload . '">' . "\n";
print '<input type=hidden name="action" value="order">'."\n";
&hidpara;
print '<input type=submit value="注文画面に戻る">' . "\n";
print '</FORM>'."\n";
print '</TD><TD> </TD><TD>';
print '<form method="post" action="' . $reload . '">' . "\n";
print '<input type=hidden name="action" value="kagocheck">'."\n";
&hidpara;
print '<input type=submit value="訂正削除画面に戻る">' . "\n";
print '</FORM>'."\n";
print '</TD><TD> </TD><TD>';
print '<form method="post" action="' . $reload . '">' . "\n";
print '<input type=hidden name="action" value="jusho">'."\n";
&hidpara;
print '<INPUT TYPE="SUBMIT" VALUE="住所・氏名入力へ進む">'."\n";
print '</FORM>'."\n";
print '</TD></TR>';
print '</TABLE>';
print "</BODY>\n";
print "</HTML>\n";
} # kakutei
#############################################
# #
# 住所氏名入力処理 #
# #
#############################################
sub jusho {
print "Content-type: text/html\n\n";
print <<EOM;
<HTML>
<HEAD>
<TITLE>ご注文メール</TITLE>
</HEAD>
<BODY BGCOLOR="#CCffff">
<FONT SIZE=4 COLOR=#000000>
<CENTER>
<PRE><H2>ご住所・氏名の登録</H2></PRE>
</CENTER>
<HR SIZE=3 WIDTH=100%>
<FORM METHOD="POST" ACTION=$reload>
<INPUT TYPE="hidden" NAME="action" VALUE="check">
<BR><BR>
<B>ご依頼主
<FONT SIZE=3 COLOR=#FF0000>(ご依頼主とご請求先、お届け先が同一の場合はこの欄のみの入力です)
</FONT></B><BR>
<TABLE BORDER="1" WIDTH="70%">
<TR>
<TH ALIGN="LEFT" VALIGN="MIDDLE">お名前(漢字)</TH>
<TD ALIGN="LEFT" VALIGN="MIDDLE"><INPUT TYPE="Text" NAME="ira-namek"
SIZE=40></TD>
</TR>
<TH ALIGN="LEFT" VALIGN="MIDDLE">お名前(ふりがな)</TH>
<TD ALIGN="LEFT" VALIGN="MIDDLE"><INPUT TYPE="Text" NAME="ira-namef"
SIZE=40></TD>
</TR>
<TH ALIGN="LEFT" VALIGN="MIDDLE">郵便番号</TH>
<TD ALIGN="LEFT" VALIGN="MIDDLE"><INPUT TYPE="Text" NAME="ira-yubin"
SIZE=15></TD>
</TR>
<TH ALIGN="LEFT" VALIGN="MIDDLE">ご住所</TH>
<TD ALIGN="LEFT" VALIGN="MIDDLE"><TEXTAREA NAME="ira-addr" COLS=50
ROWS=2 ALIGN=BOTTOM></TEXTAREA></TD>
</TR>
<TH ALIGN="LEFT" VALIGN="MIDDLE">電話番号(市外局番から)</TH>
<TD ALIGN="LEFT" VALIGN="MIDDLE"><INPUT TYPE="Text" NAME="ira-tel"
SIZE=30></TD>
</TR>
<TH ALIGN="LEFT" VALIGN="MIDDLE">メールアドレス(半角入力)</TH>
<TD ALIGN="LEFT" VALIGN="MIDDLE"><INPUT TYPE="Text" NAME="ira-email"
Size = 40 ></TD>
</TR>
</TABLE>
<BR><BR>
<B>ご請求先
<FONT SIZE=3 COLOR=#FF0000>(未入力時、ご依頼主にご請求させていただきます。)
</FONT></B><BR>
<TABLE BORDER="1" WIDTH="70%">
<TR>
<TH ALIGN="LEFT" VALIGN="MIDDLE">お名前(漢字)</TH>
<TD ALIGN="LEFT" VALIGN="MIDDLE"><INPUT TYPE="Text" NAME="sei-namek"
SIZE=40></TD>
</TR>
<TH ALIGN="LEFT" VALIGN="MIDDLE">お名前(ふりがな)</TH>
<TD ALIGN="LEFT" VALIGN="MIDDLE"><INPUT TYPE="Text" NAME="sei-namef"
SIZE=40></TD>
</TR>
<TH ALIGN="LEFT" VALIGN="MIDDLE">郵便番号</TH>
<TD ALIGN="LEFT" VALIGN="MIDDLE"><INPUT TYPE="Text" NAME="sei-yubin"
SIZE=15></TD>
</TR>
<TH ALIGN="LEFT" VALIGN="MIDDLE">ご住所</TH>
<TD ALIGN="LEFT" VALIGN="MIDDLE"><TEXTAREA NAME="sei-addr" COLS=50
ROWS=2 ALIGN=BOTTOM></TEXTAREA></TD>
</TR>
<TH ALIGN="LEFT" VALIGN="MIDDLE">電話番号(市外局番から)</TH>
<TD ALIGN="LEFT" VALIGN="MIDDLE"><INPUT TYPE="Text" NAME="sei-tel"
SIZE=30></TD>
</TR>
</TABLE>
<BR><BR>
<B>お届け先
<FONT SIZE=3 COLOR=#FF0000>(未入力時、ご依頼主にお届けさせていただきます。)
</FONT></B><BR>
<TABLE BORDER="1" WIDTH="70%">
<TR>
<TH ALIGN="LEFT" VALIGN="MIDDLE">お名前(漢字)</TH>
<TD ALIGN="LEFT" VALIGN="MIDDLE"><INPUT TYPE="Text" NAME="tod-namek"
SIZE=40></TD>
</TR>
<TH ALIGN="LEFT" VALIGN="MIDDLE">お名前(ふりがな)</TH>
<TD ALIGN="LEFT" VALIGN="MIDDLE"><INPUT TYPE="Text" NAME="tod-namef"
SIZE=40></TD>
</TR>
<TH ALIGN="LEFT" VALIGN="MIDDLE">郵便番号</TH>
<TD ALIGN="LEFT" VALIGN="MIDDLE"><INPUT TYPE="Text" NAME="tod-yubin"
SIZE=15></TD>
</TR>
<TH ALIGN="LEFT" VALIGN="MIDDLE">ご住所</TH>
<TD ALIGN="LEFT" VALIGN="MIDDLE"><TEXTAREA NAME="tod-addr" COLS=50
ROWS=2 ALIGN=BOTTOM></TEXTAREA></TD>
</TR>
<TH ALIGN="LEFT" VALIGN="MIDDLE">電話番号(市外局番から)</TH>
<TD ALIGN="LEFT" VALIGN="MIDDLE"><INPUT TYPE="Text" NAME="tod-tel"
SIZE=30></TD>
</TR>
</TABLE>
<BR><BR>
<DT><B>のし種類(複数選択の場合は備考に、その旨ご入力下さい)</B>
<PRE>
<DD><INPUT NAME="noshi" TYPE="RADIO" VALUE="0"
CHECKED>なし <INPUT TYPE="RADIO" NAME="noshi" VALUE="1">御中元 <INPUT
TYPE="RADIO" NAME="noshi" VALUE="2">御歳暮 <INPUT TYPE="RADIO" NAME="noshi"
VALUE="3">御祝い <INPUT TYPE="RADIO" NAME="noshi"
VALUE="4">内祝い <INPUT TYPE="RADIO" NAME="noshi" VALUE="5">お見舞い
<DD><INPUT NAME="noshi" TYPE="RADIO" VALUE="6">その他 <INPUT
NAME="sonota" TYPE="Text" SIZE=20 MAXLENGTH=20>
</PRE>
<BR>
<DT><B>のし紙のお名前(複数の場合は備考に、その旨ご入力下さい)</B>
<PRE>
<DD><INPUT NAME="noshinm" TYPE="RADIO" VALUE="1"
CHECKED>ご依頼主のお名前 <INPUT TYPE="RADIO" NAME="noshinm"
VALUE="2">ご依頼主の姓のみ
<DD><INPUT NAME="noshinm" TYPE="RADIO" VALUE="3">その他 <INPUT
NAME="sonotanm" TYPE="Text" SIZE=40 MAXLENGTH=40>
</PRE>
<HR SIZE=3 WIDTH=100%>
<BR>
<DT><B>お支払い方法</B>
<DD><SELECT NAME="shiharai">
<OPTION VALUE="1">着荷後に郵便振込(商品と同送した郵便振込用紙を使う)
<OPTION VALUE="2">代金着払い(受取人が配送業者へ代金を支払う)
</SELECT>
<BR>
<HR SIZE=3 WIDTH=100%>
<BR>
<DT><B>備 考</B>
<DD><TEXTAREA NAME="bikou" COLS=60 ROWS=2></TEXTAREA>
<INPUT TYPE="hidden" NAME="bikou" VALUE="">
<BR>
<HR SIZE=3 WIDTH=100%>
<BR>
<FONT SIZE=3 COLOR=#FF0000>
<B>(注意)20歳未満の方がお酒を購入することは、法律で禁じられています。</B>
</FONT>
<BR><BR>
ご注文内容を入力終了しましたら次に、入力終了ボタンをクリックして下さい。
<BR>
クリック後、ご注文確認画面となります。(この時点では未送信です)
<BR>
<DD><INPUT TYPE="SUBMIT" VALUE=" 入力終了 "> <INPUT TYPE="reset"
VALUE="入力内容の消去">
</DL>
<HR>
</FONT>
EOM
&hidpara;
print '</FORM></BODY></HTML>'."\n";
} # jusho
#############################################
# #
# 入力データ確認表示画面ルーチン #
# #
#############################################
sub kakunin {
print "Content-type: text/html\n\n";
print <<EOM;
<HTML>
<HEAD><TITLE>ご注文データの確認</TITLE></HEAD>
<BODY BGCOLOR="#ffffff">
<H2>ご注文データの確認</H2>
EOM
# かごの中を表示
&display;
print '<HR SIZE=3 WIDTH=100%>';
# 送信する
print '<form method="post" action="' . $reload . '">' . "\n";
&hidpara;
#################
$ordertotal="・商品計: $total円"."\n";
$ordertax="・消費税: $tax円"."\n";
$ordergoukei="●合 計: $goukei円"."\n";
print '<input type=hidden name="total" value="'.$ordertotal.'">' .
"\n";
print '<input type=hidden name="tax" value="'.$ordertax.'">' . "\n";
print '<input type=hidden name="goukei" value="'.$ordergoukei.'">' .
"\n";
for ($i=1; $i<=$kensu; $i++) {
# 金額計算
$kingak=$ordersu[$i] * $tanka[$orderno[$i]];
$meisai='ご注文商品名:'.$hinmei[$orderno[$i]].' 数量:'.$ordersu[$i].' 個 金額: '.$kingak.'円'."\n";
print '<input type=hidden name="order'.$i.'" value="'.$meisai.'">' .
"\n";
} # for
# 注文数をメール処理に渡す
print '<input type=hidden name="kensu" value="'.$kensu.'">' . "\n";
######################
print '<HR SIZE=3 WIDTH=100%>';
print '<FONT SIZE=5 COLOR=#0000FF>';
print "** ご依頼主 **"."\n";
print '</FONT>';
print '<BR>';
# タグの無効化
$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 '<TABLE BORDER="1" WIDTH="70%">'."\n";
print '<TR>';
print '<TH ALIGN="LEFT" VALIGN="MIDDLE">お名前(漢字)</TH>'."\n";
print '<TD ALIGN="LEFT" VALIGN="MIDDLE">'."\n";
print $in{'ira-namek'};
print ' 様';
print '</TD></TR>';
print '<TH ALIGN="LEFT"
VALIGN="MIDDLE">お名前(ふりがな)</TH>'."\n";
print '<TD ALIGN="LEFT" VALIGN="MIDDLE">'."\n";
print $in{'ira-namef'};
print '</TD></TR>';
print '<TH ALIGN="LEFT" VALIGN="MIDDLE">郵便番号</TH>'."\n";
print '<TD ALIGN="LEFT" VALIGN="MIDDLE">'."\n";
print $in{'ira-yubin'};
print '</TD></TR>';
print '<TH ALIGN="LEFT" VALIGN="MIDDLE">ご住所</TH>'."\n";
print '<TD ALIGN="LEFT" VALIGN="MIDDLE">'."\n";
print $in{'ira-addr'};
print '</TD></TR>';
print '<TH ALIGN="LEFT"
VALIGN="MIDDLE">電話番号(市外局番から)</TH>'."\n";
print '<TD ALIGN="LEFT" VALIGN="MIDDLE">'."\n";
print $in{'ira-tel'};
print '</TD></TR>';
print '<TH ALIGN="LEFT"
VALIGN="MIDDLE">メールアドレス(半角入力)</TH>'."\n";
print '<TD ALIGN="LEFT" VALIGN="MIDDLE">'."\n";
print $in{'ira-email'};
print '</TD></TR>';
print '</TABLE>';
print '<HR SIZE=3 WIDTH=100%>';
print '<FONT SIZE=5 COLOR=#0000FF>';
print "** ご請求先 **"."\n";
print '</FONT>';
print '<BR>';
print '<TABLE BORDER="1" WIDTH="70%">'."\n";
print '<TR>';
print '<TH ALIGN="LEFT" VALIGN="MIDDLE">お名前(漢字)</TH>'."\n";
print '<TD ALIGN="LEFT" VALIGN="MIDDLE">'."\n";
if (length($in{'sei-namek'}) > 1) { print $in{'sei-namek'}; print ' 様';}
else { print 'ご依頼主様と同じ'; }
print '</TD></TR>';
print '<TH ALIGN="LEFT"
VALIGN="MIDDLE">お名前(ふりがな)</TH>'."\n";
print '<TD ALIGN="LEFT" VALIGN="MIDDLE">'."\n";
print $in{'sei-namef'};
print '</TD></TR>';
print '<TH ALIGN="LEFT" VALIGN="MIDDLE">郵便番号</TH>'."\n";
print '<TD ALIGN="LEFT" VALIGN="MIDDLE">'."\n";
print $in{'sei-yubin'};
print '</TD></TR>';
print '<TH ALIGN="LEFT" VALIGN="MIDDLE">ご住所</TH>'."\n";
print '<TD ALIGN="LEFT" VALIGN="MIDDLE">'."\n";
if (length($in{'sei-addr'}) > 1) { print $in{'sei-addr'}; }
else { print 'ご依頼主様と同じ'; }
print '</TD></TR>';
print '<TH ALIGN="LEFT"
VALIGN="MIDDLE">電話番号(市外局番から)</TH>'."\n";
print '<TD ALIGN="LEFT" VALIGN="MIDDLE">'."\n";
print $in{'sei-tel'};
print '</TD></TR>';
print '</TABLE>';
print '<HR SIZE=3 WIDTH=100%>';
print '<FONT SIZE=5 COLOR=#0000FF>';
print "** お届け先 **"."\n";
print '</FONT>';
print '<BR>';
print '<TABLE BORDER="1" WIDTH="70%">'."\n";
print '<TR>';
print '<TH ALIGN="LEFT" VALIGN="MIDDLE">お名前(漢字)</TH>'."\n";
print '<TD ALIGN="LEFT" VALIGN="MIDDLE">'."\n";
if (length($in{'tod-namek'}) > 1) { print $in{'tod-namek'}; print ' 様';}
else { print 'ご依頼主様と同じ'; }
print ' 様';
print '</TD></TR>';
print '<TH ALIGN="LEFT"
VALIGN="MIDDLE">お名前(ふりがな)</TH>'."\n";
print '<TD ALIGN="LEFT" VALIGN="MIDDLE">'."\n";
print $in{'tod-namef'};
print '</TD></TR>';
print '<TH ALIGN="LEFT" VALIGN="MIDDLE">郵便番号</TH>'."\n";
print '<TD ALIGN="LEFT" VALIGN="MIDDLE">'."\n";
print $in{'tod-yubin'};
print '</TD></TR>';
print '<TH ALIGN="LEFT" VALIGN="MIDDLE">ご住所</TH>'."\n";
print '<TD ALIGN="LEFT" VALIGN="MIDDLE">'."\n";
if (length($in{'tod-addr'}) > 1) { print $in{'tod-addr'}; }
else { print 'ご依頼主様と同じ'; }
print '</TD></TR>';
print '<TH ALIGN="LEFT"
VALIGN="MIDDLE">電話番号(市外局番から)</TH>'."\n";
print '<TD ALIGN="LEFT" VALIGN="MIDDLE">'."\n";
print $in{'tod-tel'};
print '</TD></TR>';
print '</TABLE>';
print '<HR SIZE=3 WIDTH=100%>';
print '<BR>';
$sno=$in{'noshi'};
if ($sno == 6) { $noshi[$sno] = $in{'sonota'} }
print "のし:$noshi[$sno]"."\n";
print '<BR><BR>';
$sno=$in{'noshinm'};
if ($sno == 3) { $noshinm[$sno] = $in{'sonotanm'}; }
print "のし紙のお名前:$noshinm[$sno]"."\n";
# 送信用
$noshimei=$noshinm[$sno];
print '<BR><BR>';
$sno=$in{'shiharai'};
print "お支払い方法:$shiharai[$sno]"."\n";
# 送信用
$shiharaimei=$shiharai[$sno];
print '<BR>';
print '<HR SIZE=3 WIDTH=100%>';
print "備考:$in{'bikou'}"."\n";
print '<BR>';
# 入力データの受け渡し
print '<input type=hidden name="ira-namek" value="'.$in{'ira-namek'}.'">'
. "\n";
print '<input type=hidden name="ira-namef" value="'.$in{'ira-namef'}.'">'
. "\n";
print '<input type=hidden name="ira-yubin" value="'.$in{'ira-yubin'}.'">'
. "\n";
print '<input type=hidden name="ira-addr" value="'.$in{'ira-addr'}.'">' .
"\n";
print '<input type=hidden name="ira-tel" value="'.$in{'ira-tel'}.'">' .
"\n";
print '<input type=hidden name="ira-email" value="'.$in{'ira-email'}.'">'
. "\n";
print '<input type=hidden name="sei-namek"
value="'.$in{'sei-namek'}.'">' . "\n";
print '<input type=hidden name="sei-namef" value="'.$in{'sei-namef'}.'">'
. "\n";
print '<input type=hidden name="sei-yubin" value="'.$in{'sei-yubin'}.'">'
. "\n";
print '<input type=hidden name="sei-addr" value="'.$in{'sei-addr'}.'">' .
"\n";
print '<input type=hidden name="sei-tel" value="'.$in{'sei-tel'}.'">' .
"\n";
print '<input type=hidden name="tod-namek"
value="'.$in{'tod-namek'}.'">' . "\n";
print '<input type=hidden name="tod-namef" value="'.$in{'tod-namef'}.'">'
. "\n";
print '<input type=hidden name="tod-yubin" value="'.$in{'tod-yubin'}.'">'
. "\n";
print '<input type=hidden name="tod-addr" value="'.$in{'tod-addr'}.'">' .
"\n";
print '<input type=hidden name="tod-tel" value="'.$in{'tod-tel'}.'">' .
"\n";
print '<input type=hidden name="noshi" value="'.$noshimei.'">' .
"\n";
print '<input type=hidden name="shiharai" value="'.$shiharaimei.'">' .
"\n";
print '<input type=hidden name="bikou" value="'.$in{'bikou'}.'">' . "\n";
# 漢字化けをおこすので、データと一緒に変数渡しする
print '<input type=hidden name="msgi" value="●ご依頼主">' . "\n";
print '<input type=hidden name="msgs" value="●ご請求先">' . "\n";
print '<input type=hidden name="msgt" value="●お届け先">' . "\n";
print '<input type=hidden name="msgi1" value="○お名前">' . "\n";
print '<input type=hidden name="msgi2" value="○ふりがな">' . "\n";
print '<input type=hidden name="msgi3" value="○郵便番号">' . "\n";
print '<input type=hidden name="msgi4" value="○住所">' . "\n";
print '<input type=hidden name="msgi5" value="○電話">' . "\n";
print '<input type=hidden name="msgi6" value="○アドレス">' . "\n";
print '<input type=hidden name="msgb1" value="■のし紙のお名前">' . "\n";
print '<input type=hidden name="msgb2" value="■お支払い方法">' . "\n";
print '<input type=hidden name="msgbk" value="■備考">' . "\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 '<input type=hidden name="time" value="'.$nichiji.'">' . "\n";
print '<input type=hidden name="action" value="send">' . "\n";
print '<INPUT TYPE="submit" value="送信します">'."\n";
print "</FORM>\n";
# 取消する
print '<form method="post" action="' . $reload . '">' . "\n";
print '<input type=hidden name="action" value="first">' . "\n";
print '<INPUT TYPE="submit" value="取消">'."\n";
print "</FORM>\n";
print "</BODY>\n";
print "</HTML>\n";
}
#
# タグの無効化サブルーチン
#
sub tagck {
$ckdt =~ s/</</ig;
$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;
} # check
#############################################
# #
# チェックエラー表示画面ルーチン #
# #
#############################################
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
'<html><head><title>注文データ入力の練習2</title></head>' .
"\n";
print '<body bgcolor="#ff66ff" text="#000000" LINK="#0000ff"
VLINK="#ff8888" ALINK="#FF0000">' . "\n";
print '<h2>注文データ入力の練習2で下記のエラーが発生しました</h2>' . "\n";
print "<i>$error_msg</i>\n";
print '<BR>';
# リロードでもどると入力データが消えてしまうので
print 'ブラウザ画面の戻るをクリックする'."\n";;
if ($test eq "on") {
print '<BR>';
print '<font size="5"><b>入力の確認表示</b></font><p>' .
"\n";
print '<BR>';
print 'action: '.$in{'action'}.''."\n";
print '<BR>';
print 'name: '.$in{'name'}.''."\n";
print '<BR>';
print 'email: '.$in{'email'}.''."\n";
print '<BR>';
print 'biko: '.$in{'comment'}.''."\n";
print '<BR>';
} # if
print '<p></body></html>' . "\n";
exit;
} # error
#############################################
# #
# メール送信ルーチン #
# #
#############################################
sub sendmail {
# 注文商品数
$kensu=$in{'kensu'};
open(MAIL,"|$sendmail $myaddress");
$message = <<EOM;
---- start of message ----------------------------------------
Subject: orderk2からご注文がありました
Reply-To: $in{'email'}
$in{'time'}
EOM
# メール送信はJISと決められている
&jcode'convert(*message,'jis');
print MAIL $message;
# 注文明細送信
for ($i=1; $i<=$kensu; $i++) {
$msg=$in{'order'.$i};
&sendmsg;
} # end of for
$message = <<EOM;
$in{'total'}
$in{'tax'}
$in{'goukei'}
----------------------------------------------------------
$in{'msgi'}
$in{'msgi1'}
$in{'ira-namek'}
$in{'msgi2'}
$in{'ira-namef'}
$in{'msgi3'}
$in{'ira-yubin'}
$in{'msgi4'}
$in{'ira-addr'}
$in{'msgi5'}
$in{'ira-tel'}
$in{'msgi6'}
$in{'ira-email'}
----------------------------------------------------------
$in{'msgs'}
$in{'msgi1'}
$in{'sei-namek'}
$in{'msgi2'}
$in{'sei-namef'}
$in{'msgi3'}
$in{'sei-yubin'}
$in{'msgi4'}
$in{'sei-addr'}
$in{'msgi5'}
$in{'sei-tel'}
----------------------------------------------------------
$in{'msgt'}
$in{'msgi1'}
$in{'tod-namek'}
$in{'msgi2'}
$in{'tod-namef'}
$in{'msgi3'}
$in{'tod-yubin'}
$in{'msgi4'}
$in{'tod-addr'}
$in{'msgi5'}
$in{'tod-tel'}
----------------------------------------------------------
$in{'msgb1'}
$in{'noshi'}
$in{'msgb2'}
$in{'shiharai'}
$in{'msgbk'}
$in{'bikou'}
---- end of message ----------------------------------------
EOM
# メール送信はJISと決められている
&jcode'convert(*message,'jis');
print MAIL $message;
close(MAIL);
# 依頼主への確認メール
# 実際に使用する場合は、if{ }をカットしてください
# ここから
if ($test eq "on") {
open(MAIL,"|$sendmail $in{'ira-email'}");
$message = <<EOM;
Subject: orderk2からのご注文確認(練習です)
Reply-To: $myaddress
$in{'time'}
EOM
&jcode'convert(*message,'jis');
print MAIL $message;
for ($i=1; $i<=$kensu; $i++) {
$msg=$in{'order'.$i};
&sendmsg;
} # end of for
$message = <<EOM;
$in{'total'}
$in{'tax'}
$in{'goukei'}
----------------------------------------------------------
$in{'msgi'}
$in{'msgi1'}
$in{'ira-namek'}
$in{'msgi2'}
$in{'ira-namef'}
$in{'msgi3'}
$in{'ira-yubin'}
$in{'msgi4'}
$in{'ira-addr'}
$in{'msgi5'}
$in{'ira-tel'}
$in{'msgi6'}
$in{'ira-email'}
----------------------------------------------------------
$in{'msgs'}
$in{'msgi1'}
$in{'sei-namek'}
$in{'msgi2'}
$in{'sei-namef'}
$in{'msgi3'}
$in{'sei-yubin'}
$in{'msgi4'}
$in{'sei-addr'}
$in{'msgi5'}
$in{'sei-tel'}
----------------------------------------------------------
$in{'msgt'}
$in{'msgi1'}
$in{'tod-namek'}
$in{'msgi2'}
$in{'tod-namef'}
$in{'msgi3'}
$in{'tod-yubin'}
$in{'msgi4'}
$in{'tod-addr'}
$in{'msgi5'}
$in{'tod-tel'}
----------------------------------------------------------
$in{'msgb1'}
$in{'noshi'}
$in{'msgb2'}
$in{'shiharai'}
$in{'msgbk'}
$in{'bikou'}
---- end of message ----------------------------------------
EOM
# メール送信はJISと決められている
&jcode'convert(*message,'jis');
print MAIL $message;
close(MAIL);
} # ここまで
print "Content-type: text/html\n\n";
print "<HTML>\n";
print "<HEAD>\n";
print "<TITLE>orderk1.cgi </TITLE>\n";
print "</HEAD>\n";
print '<BODY BACKGROUND="'.$dir.'bg1.gif">'."\n";
print '送信を完了しました。ありがとうございました'."\n";
print '<form method="post" action="' . $reload . '">' . "\n";
print '<input type=hidden name="action" value="first">' . "\n";
print '<INPUT TYPE="submit" value="最初の画面に戻ります">'."\n";
print "</FORM>\n";
print "</BODY>\n";
print "</HTML>\n";
} # end of sendmail
######################
# sendmailルーチン #
######################
sub sendmsg {
# メール送信はJISと決められている
$msg=$msg."\n"; # 改行させる
&jcode'convert(*msg,'jis');
print MAIL $msg;
} # end of sendmsg
####################### end ###########################