CGI_インターネットショッピング(仮)(例)


※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。





#! /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 ='ooooo@xxxxx.co.jp';

# 税率
$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" }

# 注文画面に戻る
&order;

} # 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 "") {
&order;
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/</&lt;/ig;
$ckdt =~ s/>/&gt;/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 ###########################

 

ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。