前提・実現したいこと
本を参考にPHPでECカートを作成しました。
数量が計算ができず、正しく表示されません。
if (preg_match("/^[0-9]+$/", $post['kazu' . $i]) == 0) {
print '数量に誤りがあります';
print '<a href="shop_cartlook.php">カートに戻る</a>';
exit();
}
preg_matchは、入力文字列がが半角数字の場合1を返す。マッチしないときは0を返すようですが、0になってしまいます。
デバックツールで確認すると<input type="text" name="kazu0" value="">のように表示されます。
ご教授願えないでしょうか。
発生している問題・エラーメッセージ
エラーメッセージ PHP Notice: Array to string conversion〜
該当のソースコード
<?php session_start(); session_regenerate_id(true); require_once('../common/common.php'); $post = sanitize($_POST); $max = $post['max']; for ($i = 0; $i < $max; $i++) { if (preg_match("/^[0-9]+$/", $post['kazu' . $i]) == 0) { print '数量に誤りがあります'; print '<a href="shop_cartlook.php">カートに戻る</a>'; exit(); } if ($post['kazu' . $i] < 1 || 10 < $post['kazu' . $i]) { print '数量は必ず1個以上、10個までです。'; print '<a href="shop_cartlook.php">カートに戻る</a>'; exit(); } (int)$kazu[] = $post['kazu' . $i]; } $cart = $_SESSION['cart']; for ($i = $max; 0 <= $i; $i--) { if (isset($_POST['sakujo' . $i]) == true) { array_splice($cart, $i, 1); array_splice($kazu, $i, 1); } } $_SESSION['cart'] = $cart; $_SESSION['kazu'] = (int)$kazu; header('Location:shop_cartlook.php'); ?>
回答1件
あなたの回答
tips
プレビュー