現在PHPで簡単なショッピングカートのコードを書いています。動作はするのですがエラーが出てしまいます。改善点を教えてください。
<?php session_start(); /* 「カートをクリア」ボタンからアクセスされたらセッションデータを消す */ if(isset($_POST['clearCart'])){ session_unset(); } /* 初回アクセス時にカートを初期化 */ if(!isset($_SESSION['cart'])){ $_SESSION['cart']=""; } if(($cart=$_SESSION['cart'])==''){ // セッションのデータを変数に代入するが,もしそれが空の文字列だったら $cart=array(); // $cartに空の配列をセット(初回のみ) $_SESSION['cart']=$cart; // 空のカートをセッションに記録(初回のみ) } /* カートにitemName,itemCountを追加→更新 */ $itemName=(isset($_POST['itemName']))?$_POST['itemName']:null; $itemCount=(isset($_POST['itemCount']))?$_POST['itemCount']:null; if(!empty($itemName) && !empty($itemCount)){ $cart[$itemName]+=$itemCount; // 「商品名」のキーに対応する「個数」を追加 $_SESSION['cart']=$cart; // セッションのデータを更新 } ?> <!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <title>cart.php</title> </head> <body> <h2>商品名と個数を入力</h2> <form action="cart.php" method="POST"> <ul> <li>品名:<input type="text" name="itemName"> <li>個数:<input type="text" name="itemCount"> </ul> <input type="submit" value="送信"> </form> <hr> <h2>現在のカートの内容</h2> <?php // $cart配列の中身をforeach文でタグとともに出力 // 商品名と個数の組をテーブルの1行で表示 echo"<table border=1>"; foreach($cart as $key=>$num){ echo"<tr><td>".$key."</td><td>".$num."</td></tr>"; } echo"</table>";?>
<form action="cart.php" method="POST"> <!-- submitボタンのnameとvalueも,フォームでPOSTされるデータの一部です --> <input type="submit" name="clearCart" value="カートをクリア"> </form> </body> </html>まずは、「エラーが出ました」ではなく、エラーをしっかり書いて、質問を改善してください。
あと https://teratail.com/help/question-tips をよく読み質問の仕方をまず学んでください。
あなたの回答
tips
プレビュー