質問編集履歴

1

わかりやすいように説明内容を変更しました。

2016/05/27 08:36

投稿

GreenStone
GreenStone

スコア12

test CHANGED
@@ -1 +1 @@
1
- phpで目的記述が表示れな
1
+ Mysqlにデータを格納せた
test CHANGED
@@ -1,231 +1,65 @@
1
- 初心者でプログラムの勉強中(1ヶ月目)です。
2
-
3
- 題解決為、どうぞよろしくお願いいたします。
1
+ 壁にぶつかりました。問題解決為、皆様のアドバイスの程よろしくお願いします。
4
2
 
5
3
 
6
4
 
7
- 下のコードを記述して、今回の目的の”レシピの登録が完了しました。”を表示させようとしました。
5
+ **<目的>**
8
6
 
9
- 早速、各項目を入力して送信ボタンを押したら”エラー発生”表示になりました。
10
-
11
- 操作手順は、http://localhost/yasashiiphp/form.html
12
-
13
- をブラウザに入力してフォームを表示です。
14
-
15
-
16
-
17
- 今度はform.htmlをルクリックしてブラウザ表示させ
7
+ **mysqlにデータが格納され、作業の完了通知をブラウザ表示させたい**
18
-
19
- 各項目を入力後送信ボタンを押すと、日本語の文字化けが出てきました。
20
-
21
- そして、add.phpのプログラムが表示されました。
22
-
23
-
24
-
25
- <文字化けしたコード>
26
-
27
- <?php
28
-
29
- $user = "●●●●●●";
30
-
31
- $pass = "●●●●●●●●";
32
-
33
- $recipe_name = $_POST['recipe_name'];
34
-
35
- $howto = $_POST['howto'];
36
-
37
- $category = (int) $_POST['category'];
38
-
39
- $difficulty = (int) $_POST['difficulty'];
40
-
41
- $budget = (int) $_POST['budget'];
42
-
43
- try {
44
-
45
- $dbh = new PDO('mysql:host=lacalhost;dbname=db1;charset=utf8', $user, $pass);
46
-
47
- $dbh->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
48
-
49
- $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
50
-
51
- $sql = "INSERT INTO recipes (recipe_name, category, difficulty, budget, howto) VALUES (?, ?, ?, ?, ?)";
52
-
53
- $stmt = $dbh->prepare($sql);
54
-
55
- $stmt->bindValue(1, $recipe_name, PDO::PARAM_STR);
56
-
57
- $stmt->bindValue(2, $category, PDO::PARAM_INT);
58
-
59
- $stmt->bindValue(3, $difficulty, PDO::PARAM_INT);
60
-
61
- $stmt->bindValue(4, $budget, PDO::PARAM_INT);
62
-
63
- $stmt->bindValue(5, $howto, PDO::PARAM_STR);
64
-
65
- $stmt->execute();
66
-
67
- $dbh = null;
68
-
69
- echo **"繝ャ繧キ繝斐�逋サ骭イ縺悟ョ御コ�@縺セ縺励◆縲�";**
70
-
71
- } catch (PDOException $e) {
72
-
73
- echo **"繧ィ繝ゥ繝シ逋コ逕�: "** . htmlspecialchars($e->getMessage(), ENT_QUOTES,'UTF-8') . "<br>";
74
-
75
- die();
76
-
77
- }
78
-
79
- ?>
80
8
 
81
9
 
82
10
 
83
11
 
84
12
 
13
+ <流れ>
14
+
15
+ htmlで作成したformからデータをphpにデータを受け渡し、
16
+
17
+ 更にmysqlのデータサーバへ保存する作業をしています。
18
+
19
+
20
+
21
+ <指示完了の確認方法>
22
+
23
+ データサーバにデータが格納されたら、完了の通知表示を行う流れです。
24
+
25
+
26
+
27
+ <問題点>
28
+
29
+ mysqlのサーバー内にデータは保存されておらず、ブラウザには
30
+
31
+ 「エラーが発生」の表示が出てきました。
32
+
33
+
34
+
35
+ <問題解決の試み>
36
+
37
+ 1.コードの入力ミスがないか確認済。
38
+
39
+ 2.サンプルコードとの比較確認済。
40
+
41
+ 3.入力フォームのブラウザ表示をURL入力とダブルクリックの両方から
42
+
43
+ データを送信。
44
+
45
+ 4.php.iniの文字コードをUTF-8に入力設定。
46
+
47
+ 5.ブラウザの表示確認を常に行っており今回のデータ送信作業まで
48
+
49
+ は何も問題なく(文字化けもなく)進行していた。
50
+
51
+ 6.これまでデータリストをブラウザで一覧表示したり、
52
+
53
+ 入力フォームから受け渡されたデータをブラウザで確認しても
54
+
55
+ 文字化けはない。
85
56
 
86
57
 
87
58
 
88
59
 
89
60
 
61
+ <関係ファイル>
90
62
 
91
- 関連ソスコ
63
+ 1.form.html ・・デタを入力するフォム。
92
64
 
93
- **<form.htmlファイル>**
94
-
95
-
96
-
97
- <!DOCTYPE html>
98
-
99
- <html lang="ja">
100
-
101
- <head>
102
-
103
- <meta charset="UTF-8">
104
-
105
- <title>入力フォーム</title>
106
-
107
- </head>
108
-
109
- <body>入力フォーム<br>
110
-
111
- <form method="post" action="add.php">
112
-
113
- 料理名:<input type="text" name="recipe_name" required><br>
114
-
115
- カテゴリ:
116
-
117
- <select name="category">
118
-
119
- <option value="">選択してください</option>
120
-
121
- <option value="1">和食</option>
122
-
123
- <option value="2">中華</option>
124
-
125
- <option value="3">洋食</option>
126
-
127
- </select>
128
-
129
- <br>
130
-
131
- 難易度:
132
-
133
- <input type="radio" name="difficulty" value="1">簡単
134
-
135
- <input type="radio" name="difficulty" value="2" checked>普通
136
-
137
- <input type="radio" name="difficulty" value="3">難しい
138
-
139
- <br>
140
-
141
- 予算:<input type="number" min="1" max="9999" name="budget">円<br>
142
-
143
- 作り方:
144
-
145
- <textarea name="howto" cols="40" rows="4" maxlength="150"></textarea>
146
-
147
- <br>
148
-
149
- <input type="submit" value="送信">
150
-
151
- </form>
152
-
153
- </body>
154
-
155
- </html>
156
-
157
-
158
-
159
- ****<add.phpファイル>****
160
-
161
-
162
-
163
- <?php
164
-
165
- $user = "●●●●●●";
166
-
167
- $pass = "●●●●●●●●";
168
-
169
- $recipe_name = $_POST['recipe_name'];
170
-
171
- $howto = $_POST['howto'];
172
-
173
- $category = (int) $_POST['category'];
174
-
175
- $difficulty = (int) $_POST['difficulty'];
176
-
177
- $budget = (int) $_POST['budget'];
65
+ 2.add.php ・・データベースにデータを自動保存されるプログラム。
178
-
179
- try {
180
-
181
- $dbh = new PDO('mysql:host=lacalhost;dbname=db1;charset=utf8', $user, $pass);
182
-
183
- $dbh->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
184
-
185
- $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
186
-
187
- $sql = "INSERT INTO recipes (recipe_name, category, difficulty, budget, howto) VALUES (?, ?, ?, ?, ?)";
188
-
189
- $stmt = $dbh->prepare($sql);
190
-
191
- $stmt->bindValue(1, $recipe_name, PDO::PARAM_STR);
192
-
193
- $stmt->bindValue(2, $category, PDO::PARAM_INT);
194
-
195
- $stmt->bindValue(3, $difficulty, PDO::PARAM_INT);
196
-
197
- $stmt->bindValue(4, $budget, PDO::PARAM_INT);
198
-
199
- $stmt->bindValue(5, $howto, PDO::PARAM_STR);
200
-
201
- $stmt->execute();
202
-
203
- $dbh = null;
204
-
205
- echo "レシピの登録が完了しました。";
206
-
207
- } catch (PDOException $e) {
208
-
209
- echo "エラー発生: " . htmlspecialchars($e->getMessage(), ENT_QUOTES,'UTF-8') . "<br>";
210
-
211
- die();
212
-
213
- }
214
-
215
- ?>
216
-
217
-
218
-
219
- **<バージョン説明>**
220
-
221
- ウィンドウズ7
222
-
223
- 32ビット
224
-
225
- xampp ver3.2.2
226
-
227
- php ver7.0.5
228
-
229
-
230
-
231
- です。