PHPでデータベースを作成しています。
数量を変更する機能を実装中に以下のエラーメッセージが発生しました。
実現したいこと
どこが間違っているのか教えてください。
発生している問題・エラーメッセージ
エラーメッセージ Notice: Undefined index: cart in C:\xampp\htdocs\shop\shop_cartlook.php on line 33 Notice: Undefined index: kazu in C:\xampp\htdocs\shop\shop_cartlook.php on line 34 Warning: count(): Parameter must be an array or an object that implements Countable in C:\xampp\htdocs\shop\shop_cartlook.php on line 35 Warning: Invalid argument supplied for foreach() in C:\xampp\htdocs\shop\shop_cartlook.php on line 43 カートの中身
該当のソースコード
PHP
1ソースコード 2<?php 3session_start(); 4session_regenerate_id(true); 5if(isset($_SESSION['member_login'])==false) 6{ 7 print 'ようこそゲスト様 '; 8 print '<a href="member_login.html">会員ログイン</a><br />'; 9 print '<br />'; 10} 11else 12{ 13 print 'ようこそ'; 14 print $_SESSION['member_name']; 15 print '様 '; 16 print '<a href="member_logout.php">ログアウト</a><br />'; 17 print '<br />'; 18} 19?> 20 21<!DOCTYPE html> 22<html> 23<head> 24<meta charset="UTF-8"> 25<title>ろくまる農園</title> 26</head> 27<body> 28 29<?php 30 31try 32{ 33 34$cart=$_SESSION['cart']; 35$kazu=$_SESSION['kazu']; 36$max=count($cart); 37 38$dsn='mysql:dbname=shop;host=localhost;charset=utf8'; 39$user='root'; 40$password=''; 41$dbh=new PDO($dsn,$user,$password); 42$dbh->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION); 43 44foreach($cart as $key => $val) 45{ 46 $sql = 'SELECT code,name,price,gazou FROM mst_product WHERE code=?'; 47 $stmt = $dbh->prepare($sql); 48 $data[0] = $val; 49 $stmt->execute($data); 50 51 $rec = $stmt->fetch(PDO::FETCH_ASSOC) 52 53 $pro_name[] = $rec['name']; 54 $pro_price[]= $rec['price']; 55 if($rec['gazou']=='') 56 { 57 $pro_gazou[]=''; 58 } 59 else 60 { 61 $pro_gazou[]='<img src="../product/gazou/'.$rec['gazou'].'">'; 62 } 63} 64$dbh=null; 65 66} 67catch(Exception $e) 68{ 69 print'ただいま障害により大変ご迷惑をお掛けしております。'; 70 exit(); 71} 72 73?> 74 75カートの中身<br /> 76<br /> 77<form method="post" action="kazu_change.php"> 78<?php for($i=0;$i<$max;$i++) 79 { 80?> 81 <?php print $pro_name[$i];?> 82 <?php print $pro_gazou[$i];?> 83 <?php print $pro_price[$i];?>円 84 <input type="text" name="kazu<?php print $i;?>" value="<?php print $kazu[$i];?>"> 85 <br /> 86<?php 87 } 88?> 89<input type="hidden" name="max" value="<?php print $max;?>"> 90<input type="submit" value"数量変更"><br /> 91<input type="button" onclick="history.back()" value="戻る"> 92</form> 93 94</body> 95</html>
試したこと
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
エラーメッセージそのままで調べればわかることもあるかと思いますが、
エラーが何を言っているかを調べたりしていませんか?
https://teratail.com/help/question-tips#questionTips12

回答2件
あなたの回答
tips
プレビュー