お世話になっております。
書籍「気づけば プロ並み PHP改訂版」を見ながら自学中です。
書籍通りに挙動せず困っております。
「OK」ボタンは表示されましたので
入力した「にんじん」「198」がphpMyadmin内のmst_productテーブルに追加されるまで持ち込みたいです。
どうぞよろしくお願いします。
以下codeです。
##pro_add.php
php(html)
1<!DOCTYPE html> 2<html> 3<head> 4<meta charset="UTF-8"> 5<title>ろくまる農園</title> 6</head> 7<body> 8 9商品追加<br /> 10<br /> 11<form method="post" action="pro_add_check.php"> 12商品名を入力してください。<br /> 13<input type="text" name="name" style="width:200px"><br /> 14価格を入力してください。<br /> 15<input type="text" name="price" style="width:50px"><br /> 16<br /> 17<input type="button" onclick="history.back()" value="戻る"> 18<input type="submit" value="OK"> 19</form> 20 21</body> 22</html>
##pro_add_check.php
php
1<!DOCTYPE html> 2<html> 3<head> 4<meta charset="UTF-8"> 5<title>ろくまる農園</title> 6</head> 7<body> 8 9<?php 10 11$pro_name=$_POST['name']; 12$pro_price=$_POST['price']; 13 14$pro_name=htmlspecialchars($pro_name,ENT_QUOTES,'UTF-8'); 15$pro_price=htmlspecialchars($pro_price,ENT_QUOTES,'UTF-8'); 16 17if($pro_name=='') 18{ 19 print '商品名が入力されていません。<br />'; 20} 21else 22{ 23 24 print '商品名:'; 25 print $pro_name; 26 print '<br />'; 27} 28 29if(preg_match('/^[0-9]+$/',$pro_price)==0) 30{ 31 32 print '価格をきちんと入力してください。<br />'; 33} 34else 35{ 36 print '価格:'; 37 print $pro_price; 38 print '円<br />'; 39} 40 41if($pro_name=='' || preg_match('/^[0-9]+$/',$pro_price)==0) 42{ 43 44 45 print '<form>'; 46 print '<input type="button" onclick="history.back()" value="戻る">'; 47 print '</form>'; 48 49} 50else 51{ 52 53 54 print '上記の商品を追加します。<br />'; 55 print '<form method="post" action="pro_add_done.php">'; 56 print '<input type="hidden" name="name" value="'.$pro_name.'">'; 57 print '<input type="hidden" name="price" value="'.$pro_price.'">'; 58 print '<br />'; 59 print '<input type="button" onclick="history.back()" value="戻る">'; 60 61 print '<input type="submit" value="OK">'; 62 print '</form>'; 63} 64 65?> 66</body> 67</html>
##pro_add_done.php
PHP
1<!DOCTYPE html> 2<html> 3<head> 4<meta charset="UTF-8"> 5<title>ろくまる農園</title> 6</head> 7<body> 8 9<?php 10 11try 12{ 13var_dump(1); 14//exit(); 15$pro_name=$_POST['name']; 16$pro_price=$_POST['price']; 17 18$pro_name=htmlspecialchars($pro_name); 19$pro_price=htmlspecialchars($pro_price); 20 21$dsn='mysql:dbname=shop;host=localhost;charset=utf8'; 22$user='root'; 23$password=''; 24$dbh=new PDO($dsn,$user,$password); 25$dbh->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION); 26var_dump(2); 27exit(); 28$sql='INSERT INTO mst_product(name,price) VALUES (?,?)'; 29$stmt=$dbh->prepare($sql); 30$data[]=$pro_name; 31$data[]=$pro_price; 32$stmt->execute($data); 33 34$dbh=null; 35 36print $pro_name; 37print 'を追加しました。<br />'; 38 39 40} 41catch(Exception $e) 42{ 43 print'ただいま障害により大変ご迷惑をお掛けしております。'; 44 exit(); 45} 46 47?> 48 49<a href="pro_list.php">戻る</a> 50 51</body> 52</html>
回答2件
あなたの回答
tips
プレビュー