「よくわかるPHPの教科書」という書籍を参考に、商品登録フォームに、画像をアップロードし表示する機能をつけたいと思っています。
しかし、画像のアップロードまではうまく行くのですが、アップロードした画像の画像名をSQLを使ってDBに挿入する点でつまずいています。(Undefined index: image_pathというエラーが出ます)
どうぞご教授のほど宜しくお願いいたします。
HTML
1【index.html】 フォームの箇所を抜粋 2 3<p>登録する商品の情報</p> 4<form id="frmInput" name="frmInput" method="post" action="input_do.php" enctype="multipart/form-data"> 5 <dl> 6 <dt><label for="maker_id">メーカーID</label></dt> 7 <dd><input name="maker_id" type="text" id="maker_id" size="10" maxlength="10"></dd> 8 9 <dt><label for="item_name">商品名</label></dt> 10 <dd><input name="item_name" type="text" id="item_name" size="35" maxlength="255"></dd> 11 12 <dt><label for="price">価格</label></dt> 13 <dd><input name="price" type="text" id="price" size="10" maxlength="10"></dd> 14 15 <dt><label for="keyword">キーワード</label></dt> 16 <dd><input name="keyword" type="text" id="keyword" size="50" maxlength="255"></dd> 17 18 <dt><label for="image_path">写真</label></dt> 19 <dd><input name="image_path" type="file" id="image_path" size="50"></dd> 20 21 </dl> 22 23<input type="submit" value="登録する"> 24 25</form> 26
PHP
1【input_do.php】 2 3<?php 4 require('dbconnect.php'); 5 6//ファイルのチェックとアップロード 7$file = $_FILES['image_path']; 8 9$ext = substr($file['name'], -4); 10if ($ext == '.gif' || $ext == '.jpg' || $ext == '.png') { 11 $filePath = './images/' . $file['name']; 12 move_uploaded_file($file['tmp_name'], $filePath); 13 print('<img src="' . $filePath . '" />'); 14} else { 15 print('※拡張子が.gif, .jpg, .pngのいずれかのファイルをアップロードしてください'); 16} 17?> 18 19 20<?php 21//SQLでDBに情報を挿入 22 23$sql=sprintf('INSERT INTO my_items SET maker_id=%d,item_name="%s",price=%d,keyword="%s",image_path="%s"', 24mysqli_real_escape_string($db, $_POST['maker_id']), 25mysqli_real_escape_string($db, $_POST['item_name']), 26mysqli_real_escape_string($db, $_POST['price']), 27mysqli_real_escape_string($db, $_POST['keyword']), 28mysqli_real_escape_string($db, $_POST['image_path']) 29); 30 31mysqli_query($db,$sql)or die(mysqli_error($db)); 32?> 33
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/12/23 08:51