teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

2

質問内容を「商品がテーブルに追加されない。」に変更しました。

2021/06/26 19:42

投稿

ema-material
ema-material

スコア29

title CHANGED
@@ -1,1 +1,1 @@
1
- PHP自学中 商品登録完了しない。
1
+ PHP自学中 商品がテーブルに追加されない。
body CHANGED
@@ -2,11 +2,9 @@
2
2
  書籍「気づけば プロ並み PHP改訂版」を見ながら自学中です。
3
3
  書籍通りに挙動せず困っております。
4
4
 
5
+ 「OK」ボタンは表示されましたので
5
- ![イメジ説明](e3df8c8db3da7dd78cef6bc8a153db76.png)
6
+ 入力した「にんじん」「198」がphpMyadmin内のmst_productテブルに追加されるまで持ち込みたいです。
6
7
 
7
- 「戻る」ボタンの横に「OK」ボタンが表示されず困っています。
8
- さらにここから入力した「にんじん」「198」がphpMyadmin内のmst_productテーブルに追加されるまで持ち込みたいです。
9
-
10
8
  ![イメージ説明](59ce668dce5af8d9ec9ace8d9348e731.png)
11
9
 
12
10
  どうぞよろしくお願いします。

1

pro_add_check.php側の解決したソースコードを更新し、pro_add_done.phpのデバッグ状況を掲載しました

2021/06/26 19:42

投稿

ema-material
ema-material

スコア29

title CHANGED
File without changes
body CHANGED
@@ -61,6 +61,7 @@
61
61
  }
62
62
  else
63
63
  {
64
+
64
65
  print '商品名:';
65
66
  print $pro_name;
66
67
  print '<br />';
@@ -68,6 +69,7 @@
68
69
 
69
70
  if(preg_match('/^[0-9]+$/',$pro_price)==0)
70
71
  {
72
+
71
73
  print '価格をきちんと入力してください。<br />';
72
74
  }
73
75
  else
@@ -77,20 +79,26 @@
77
79
  print '円<br />';
78
80
  }
79
81
 
80
- if($pro_name==''||preg_match('/¥[0-9]+¥z/',$pro_price)==0)
82
+ if($pro_name=='' || preg_match('/^[0-9]+$/',$pro_price)==0)
81
83
  {
84
+
85
+
82
86
  print '<form>';
83
87
  print '<input type="button" onclick="history.back()" value="戻る">';
84
88
  print '</form>';
89
+
85
90
  }
86
91
  else
87
92
  {
93
+
94
+
88
95
  print '上記の商品を追加します。<br />';
89
96
  print '<form method="post" action="pro_add_done.php">';
90
97
  print '<input type="hidden" name="name" value="'.$pro_name.'">';
91
98
  print '<input type="hidden" name="price" value="'.$pro_price.'">';
92
99
  print '<br />';
93
100
  print '<input type="button" onclick="history.back()" value="戻る">';
101
+
94
102
  print '<input type="submit" value="OK">';
95
103
  print '</form>';
96
104
  }
@@ -113,19 +121,21 @@
113
121
 
114
122
  try
115
123
  {
124
+ var_dump(1);
125
+ //exit();
126
+ $pro_name=$_POST['name'];
127
+ $pro_price=$_POST['price'];
116
128
 
117
- $pro_name = $_POST['name'];
118
- $pro_name = $_POST['price'];
129
+ $pro_name=htmlspecialchars($pro_name);
130
+ $pro_price=htmlspecialchars($pro_price);
119
131
 
120
- $pro_name = htmlspecialchars($pro_name,ENT_QUOTES,'UTF-8');
121
- $pro_price = htmlspecialchars($pro_price,ENT_QUOTES,'UTF-8');
122
-
123
132
  $dsn='mysql:dbname=shop;host=localhost;charset=utf8';
124
133
  $user='root';
125
134
  $password='';
126
135
  $dbh=new PDO($dsn,$user,$password);
127
136
  $dbh->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
128
-
137
+ var_dump(2);
138
+ exit();
129
139
  $sql='INSERT INTO mst_product(name,price) VALUES (?,?)';
130
140
  $stmt=$dbh->prepare($sql);
131
141
  $data[]=$pro_name;
@@ -137,8 +147,9 @@
137
147
  print $pro_name;
138
148
  print 'を追加しました。<br />';
139
149
 
150
+
140
151
  }
141
- catch(Exception$e)
152
+ catch(Exception $e)
142
153
  {
143
154
  print'ただいま障害により大変ご迷惑をお掛けしております。';
144
155
  exit();