今回で注文完了します。
顧客情報入力完了
ファイル名:inputinfo_end.php
<記述例>
<?php
session_start();
session_regenerate_id(true);
?>
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<link rel="stylesheet" type="text/css" href="../fshopstyle.css">
<title>さかなショップ顧客情報入力完了</title>
</head>
<body>
<main>
<section class="txtbox">
<div style="text-align: center;">
<ul class="cartflow">
<li>カート</li>
<li>情報入力</li>
<li>入力確認</li>
<li class="choice">注文確定</li>
</ul>
</div>
<?php
require_once('../com_func.php');
$post=sanitize($_POST);
$cname=$post['cname'];
$email=$post['email'];
$postal=$post['postal'];
$address=$post['address'];
$tel=$post['tel'];
$note=$post['note'];
print $cname.' 様<br>';
print 'ご注文ありがとうございました。<br>';
print $email.' 宛に自動返信メールを送りましたのでご確認ください。<br>';
print 'ご注文いただいた商品は以下の住所に発送させていただきます。<br><br>';
print '入力された内容は以下の通りです。<br>';
print '<h4>お客様ご入力内容</h4>';
print '<table class="info"><tr><th>お名前</th>';
print '<td>'.$cname.'</td></tr>';
print '<tr><th>メールアドレス</th>';
print '<td>'.$email.'</td></tr>';
print '<tr><th>郵便番号</th>';
print '<td>'.substr($postal,0,3).'-'.substr($postal,3,4);
print '<tr><th>住所</th>';
print '<td>'.$address.'</td></tr>';
print '<tr><th>電話番号</th>';
print '<td>'.$tel.'</td></tr>';
print '<tr><th>備 考</th><td>'.nl2br($note).'</td></tr>';
$date_time=new DateTime();
$date_time_disp=$date_time->format("Y-m-d H:i");
print '<tr><th>注文日時</th><td>'.$date_time_disp.'</td></tr>';
print '</table>';
$replymail='';
$replymail.=$cname." 様\n\nこのたびはご注文ありがとうございました。\n";
$replymail.="\n";
$replymail.="入力された内容は以下の通りです。\n";
$replymail.="備考:".$note."\n";
$replymail.="注文日時:".$date_time_disp."\n";
$replymail.="\n";
$replymail.="ご注文商品\n";
$replymail.="**************************\n";
$id=$_SESSION['id'];
$name=$_SESSION['name'];
$price=$_SESSION['price'];
$num=$_SESSION['num'];
$max=count($id);
print '<h4>ご注文商品内容</h4>';
print '<table><tr>';
print '<td>No.</td><td>商品名</td><td>価格</td>';
print '<td>数量</td><td>小計</td></tr>';
$sum=0; $sub=0;
for($i=0; $i<$max; $i++)
{
$i1=$i+1;
print '<tr><td>'.$i1.'</td><td>'.$name[$i].'</td>';
print '<td class="right">'.number_format($price[$i]).'</td>';
print '<td class="right">'.$num[$i].'</td>';
$sub=$price[$i] * $num[$i];
$sum += $sub;
print '<td class="right">'.number_format($sub).'</td></tr>';
$replymail.='No.'.$i1."\n";
$replymail.='商品名:'.$name[$i]."\n";
$replymail.='価格:'.number_format($price[$i])." 円\n";
$replymail.='数量:'.$num[$i]."\n";
$replymail.='小計:'.number_format($sub)." 円\n\n";
}
print '<tr><td colspan="4" class="right">合 計</td>';
print '<td class="right">'.number_format($sum).'</td></tr>';
print '<tr><td colspan="4" class="right">消費税</td>';
print '<td class="right">'.number_format($sum * 0.1).'</td></tr>';
print '<tr><td colspan="4" class="right">合計金額</td>';
print '<td class="right">'.number_format($sum * 1.1).'</td></tr>';
print '</table>';
$replymail.="合計:".number_format($sum)." 円\n";
$replymail.="消費税:".number_format($sum * 0.1)." 円\n";
$replymail.="税込金額:".number_format($sum * 1.1)." 円\n\n";
$replymail.="送料は別途かかります。\n";
$replymail.="**************************\n";
$replymail.="\n";
$replymail.="--------------------------\n";
$replymail.=" さかなショップ\n";
$replymail.="\n";
$replymail.="住所:〇〇〇〇〇〇〇〇〇〇〇〇〇\n";
$replymail.="電話:〇〇-〇〇〇-〇〇〇〇\n";
$replymail.="メール:〇〇@〇〇〇〇〇.com\n";
$replymail.="--------------------------\n";
print '<br>';
$title='ご注文ありがとうございます。';
$header='From:〇〇@〇〇〇〇〇.com';
$mail1=html_entity_decode($replymail,ENT_QUOTES,'UTF-8');
mb_language('Japanese');
mb_internal_encoding('UTF-8');
//mb_send_mail($email,$title,$mail1,$header);
$title='お客様からおご注文がありました。';
$header='From:'.$email;
$mail1=html_entity_decode($replymail,ENT_QUOTES,'UTF-8');
mb_language('Japanese');
mb_internal_encoding('UTF-8');
//mb_send_mail('〇〇@〇〇〇〇〇.com',$title,$mail1,$header);
unset($_SESSION['id']);
unset($_SESSION['name']);
unset($_SESSION['price']);
unset($_SESSION['num']);
?>
<br>
<button class="btn1a" onclick="location.href='../index.html'">トップページへ</button>
</section>
</main>
</body>
</html>
<表示例>

1~2行目:セッションスタート
15~22行目:カートの流れを表示(注文確定を選択)
24行目:関数読み込み
25行目:フォームから送られたデータをサニタイズ
26~31行目:サニタイズしたデータを変数に代入
48行目:変数内の改行を表示させるために[nl2br]を使用
49行目:今の日時[new DateTime()]を変数に代入
50行目:日付のフォーマットに変換して変数に代入
例:format(“Y-m-d H:i”)
表示:2020-05-03 17:15
53~61・95~107行目:[$replymail]に自動返信メールの内容を代入
メール本文の改行には[\n]を使います。
[.=]を使って変数に追加で付け加えています。
63~66行目:セッションに保存されたデータを代入
115・122行目:メールを送信
例:mb_send_mail(送信先アドレス,タイトル,本文,ヘッダー)
ここでは、間違って送信されないように[//]でコメントアウトしています。
124~127行目:セッションに保存されたデータを破棄
ダウンロード
今回の一連のファイルをZIPファイルにまとめました。
動作確認
念の為動作確認をします。
PHPの動作確認なのでローカル環境でのPHP動作確認できる
XAMPPなどのソフトをインストールしてください。
インストールしていない方は以下の記事を参考にしてください。
上記ダウンロードしたZIPファイルを解凍し、
[fshopフォルダ]をローカルホストにコピーします。
XAMPPのコントロールパネルを起動し、
[Apache]列の[Start]をクリックし[Apache]を起動させてください。


ウェブブラウザに「http://localhost」と入力し、
[Enter]キーを押します。

fshopフォルダの[index.html]を実行(フォルダを開けば自動で実行)し、商品一覧から商品を選び、数量を変更し、カートへ入れてみてください。



ショッピングカートに追加されます。
[ご購入手続きへ]をクリックします。

お客様情報入力の各項目を入力後、[確認画面へ]をクリックします。

入力内容の確認画面が表示されましたので間違いがなければ、
[注文確定]をクリックします。

注文が完了しました。

また、入力内容が間違っていた場合、エラー表示します。

終わりましたら、XAMPPのコントロールパネルで
[Apache]列の[Stop]をクリックし[Apache]を終了させてください。
これでデータベースを使用しない簡単なショッピングカート作成が終了しました。
コメント