以下は、私の e コマース Web サイト (プロトタイプ) 内で使用される php ファイルで、顧客が選択したアイテムを書き込み、その選択をフラット ファイル データベースに保存します。ロジックは正常に機能しますが、echo "Order Submitted!;
選択されたすべてのアイテムに対して が印刷されます。たとえば、4 つのアイテムが選択されている場合、この行は 4 回印刷されます。1 回だけ印刷する必要があります。これをどのように達成できるか考えていますか?
<body>
<table>
<?php
if (!($data = file('items.txt'))) {
echo 'ERROR: Failed to open file! </body></html>';
exit;
} else {
echo "<h1>Transaction Completed!</h1>";
}
date_default_timezone_set('Europe/London');
$now = date(' d/m/y H:i:s ');
$visitor = $_POST['visitor'];
foreach ($_POST as $varname => $varvalue) {
foreach ($data as $thedata) {
list($partno, $name, $description, $price, $image) = explode('|', $thedata);
if ($partno == $varname) {
$myFile = "purchases.txt";
$fh = fopen($myFile, 'a') or die("ERROR: Failed to open purchases file!\n");
$content = $now . "|" . $visitor . "|" . $partno . "|" . $name . "|" . $price . "\n";
if (!(fwrite($fh, $content))) {
echo "<p>ERROR: Cannot write to file($myFile)\n</p>";
exit;
} else {
echo "<p>Order Submitted!</p>";
fclose($fh);
}
}
}
}
?>
</table>
<input type="button" onClick="parent.location='home.php'" value="Return Home">
<input type="button" onClick="parent.location='items.php'" value="New Purchase">
2 つの項目が選択されている場合、出力は次のようになります。
取引完了 注文が送信されました! 注文が送信されました!