回答編集履歴

1

修正

2017/02/11 09:01

投稿

s8_chu
s8_chu

スコア14731

test CHANGED
@@ -1,6 +1,16 @@
1
+ ```
2
+
3
+ Notice: Undefined index: hoge in /Applications/XAMPP/xamppfiles/htdocs/otoiawase/ramenn.php on line xx
4
+
5
+ ```
6
+
7
+ このエラーは`$_POST`や`$_GET`で値を受け取るときによく発生するエラーです。このエラーは**定義されていない配列の要素、もしくは変数を使ったときに発生する**エラーです。
8
+
9
+ たとえば、`ramenn.php`の33行目にある`$name = $_POST['gender'];`という処理ですが、ramenn.phpに直接アクセスした場合、$_POST['gender']が未定義の状態になりますから、`Notice: Undefined index: hoge`というエラーが発生します。
10
+
1
- このするとどうしょうか
11
+ つまりこのエラーは、**使おとしている配列の要素、もしくは変数が定義されているかどうかを確認するとで解決することができ**ます
2
-
12
+
3
- **ramenn.php**
13
+ 以上のことから、`ramenn.php`は以下のようになると思います。
4
14
 
5
15
  ```PHP
6
16
 
@@ -42,29 +52,33 @@
42
52
 
43
53
  <?php
44
54
 
55
+ if (!empty($_POST["name"])) {
56
+
45
- $name = $_POST['name'];
57
+ $name = $_POST['name'];
46
-
58
+
47
- print $name . 'さんこんにちは';
59
+ print $name . 'さんこんにちは';
60
+
48
-
61
+ }
62
+
49
- ?>
63
+ ?>
50
-
51
-
52
-
53
-
54
64
 
55
65
  <p>お名前:</p>
56
66
 
57
67
  <?php
58
68
 
69
+ if (!empty($_POST['name'])) {
70
+
59
- $name = $_POST['name'];
71
+ $name = $_POST['name'];
60
-
72
+
61
- if ($name === "") {
73
+ if ($name === "") {
62
-
74
+
63
- print 'お名前が入力されていません。';
75
+ print 'お名前が入力されていません。';
64
-
76
+
65
- } else {
77
+ } else {
66
-
78
+
67
- print $name . 'さん';
79
+ print $name . 'さん';
80
+
81
+ }
68
82
 
69
83
  }
70
84
 
@@ -74,154 +88,154 @@
74
88
 
75
89
  <p>性別:</p>
76
90
 
77
- <p>
78
-
79
- <?php
91
+ <?php
80
-
92
+
81
- if (!empty($_POST["gender"])) {
93
+ if (!empty($_POST['gender'])) {
94
+
82
-
95
+ $gender = $_POST['gender'];
96
+
83
- if (($_POST['gender']) == "男" || $_POST['gender'] == "女") {
97
+ if (!empty($_POST['gender']) && ($_POST['gender']) == "男" || $_POST['gender'] == "女") {
84
-
98
+
85
- print "性別は";
99
+ print "性別は";
86
-
100
+
87
- print $_POST['gender'];
101
+ print $_POST['gender'];
88
-
102
+
89
- } else {
103
+ } else {
90
-
104
+
91
- print '性別が入力されていません';
105
+ print '性別が入力されていません';
106
+
107
+ }
108
+
109
+ }
110
+
111
+ ?>
112
+
113
+
114
+
115
+ <p>年齢:</p>
116
+
117
+ <?php
118
+
119
+ if (!empty($_POST["age"])) {
120
+
121
+ $age = $_POST['age'];
122
+
123
+ print $age . '歳';
124
+
125
+ }
126
+
127
+ ?>
128
+
129
+ <p>郵便番号:</p>
130
+
131
+ <?php
132
+
133
+ if (!empty($_POST["yuu"])) {
134
+
135
+ $yuu = $_POST['yuu'];
136
+
137
+ print $yuu;
138
+
139
+ if ($yuu === "") {
140
+
141
+ print '郵便番号が入力されていません';
142
+
143
+ } else {
144
+
145
+ print $yuu;
146
+
147
+ }
148
+
149
+ }
150
+
151
+ ?>
152
+
153
+
154
+
155
+ <p>Eメールアドレス:</p>
156
+
157
+ <?php
158
+
159
+ if (!empty($_POST['mail'])) {
160
+
161
+ $mail = $_POST['mail'];
162
+
163
+ if ($mail === "") {
164
+
165
+ print 'メールが入力されていません';
166
+
167
+ } else {
168
+
169
+ print $mail;
170
+
171
+ }
172
+
173
+ }
174
+
175
+ ?>
176
+
177
+
178
+
179
+ <p>好きなラーメン:</p>
180
+
181
+ <?php
182
+
183
+ if (!empty($_POST["ramenn"])) {
184
+
185
+ $ramenn = $_POST['ramenn'];
186
+
187
+ switch ($ramenn) {
188
+
189
+ case 'a':
190
+
191
+ print '塩ラーメンですね';
192
+
193
+ break;
194
+
195
+ case 'b':
196
+
197
+ print '醤油ラーメンですね';
198
+
199
+ break;
200
+
201
+ case 'c':
202
+
203
+ print '豚骨ラーメンですね';
204
+
205
+ break;
206
+
207
+ }
208
+
209
+ }
210
+
211
+ ?>
212
+
213
+
214
+
215
+
216
+
217
+ <p>お好きなトッピング:</p>
218
+
219
+ <?php
220
+
221
+ if (!empty($_POST['top'])) {
222
+
223
+ $top = $_POST['top'];
224
+
225
+ if (empty($top)) {
226
+
227
+ print '好きなトッピングを入力してください';
228
+
229
+ } else {
230
+
231
+ foreach ($top as $value) {
232
+
233
+ print "$value<br>";
92
234
 
93
235
  }
94
236
 
95
237
  }
96
238
 
97
- ?>
98
-
99
-
100
-
101
- <p>年齢:</p>
102
-
103
- <?php
104
-
105
- if (!empty($_POST["age"])) {
106
-
107
- $age = $_POST['age'];
108
-
109
- print $age . '歳';
110
-
111
- }
112
-
113
- ?>
114
-
115
- <p>郵便番号:</p>
116
-
117
- <?php
118
-
119
- if (!empty($_POST["yuu"])) {
120
-
121
- $yuu = $_POST['yuu'];
122
-
123
- print $yuu;
124
-
125
- if ($yuu === "") {
126
-
127
- print '郵便番号が入力されていません';
128
-
129
- } else {
130
-
131
- print $yuu;
132
-
133
- }
134
-
135
- }
136
-
137
- ?>
138
-
139
-
140
-
141
- <p>Eメールアドレス:</p>
142
-
143
- <?php
144
-
145
- if (!empty($_POST["mail"])) {
146
-
147
- $mail = $_POST['mail'];
148
-
149
- if ($mail === "") {
150
-
151
- print 'メールが入力されていません';
152
-
153
- } else {
154
-
155
- print $mail;
156
-
157
- }
158
-
159
- }
160
-
161
- ?>
162
-
163
-
164
-
165
- <p>好きなラーメン:</p>
166
-
167
- <?php
168
-
169
- if (!empty($_POST["ramenn"])) {
170
-
171
- $ramenn = $_POST['ramenn'];
172
-
173
- switch ($ramenn) {
174
-
175
- case 'a':
176
-
177
- print '塩ラーメンですね';
178
-
179
- break;
180
-
181
- case 'b':
182
-
183
- print '醤油ラーメンですね';
184
-
185
- break;
186
-
187
- case 'c':
188
-
189
- print '豚骨ラーメンですね';
190
-
191
- break;
192
-
193
- }
194
-
195
- }
196
-
197
- ?>
198
-
199
-
200
-
201
-
202
-
203
- <p>お好きなトッピング:</p>
204
-
205
- <?php
206
-
207
- if (!empty($_POST["top"])) {
208
-
209
- $top = $_POST['top'];
210
-
211
- if (empty($top)) {
212
-
213
- print '好きなトッピングを入力してください';
214
-
215
- } else {
216
-
217
- foreach ($top as $value) {
218
-
219
- print "$value<br>";
220
-
221
- }
222
-
223
- }
224
-
225
239
  }
226
240
 
227
241
  ?>
@@ -232,7 +246,7 @@
232
246
 
233
247
  <?php
234
248
 
235
- if (!empty($_POST["kan"])) {
249
+ if (!empty($_POST['kan'])) {
236
250
 
237
251
  $kan = $_POST['kan'];
238
252