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

回答編集履歴

1

修正

2017/02/11 09:01

投稿

s8_chu
s8_chu

スコア14731

answer CHANGED
@@ -1,5 +1,10 @@
1
+ ```
2
+ Notice: Undefined index: hoge in /Applications/XAMPP/xamppfiles/htdocs/otoiawase/ramenn.php on line xx
3
+ ```
4
+ このエラーは`$_POST`や`$_GET`で値を受け取るときによく発生するエラーです。このエラーは**定義されていない配列の要素、もしくは変数を使ったときに発生する**エラーです。
5
+ たとえば、`ramenn.php`の33行目にある`$name = $_POST['gender'];`という処理ですが、ramenn.phpに直接アクセスした場合、$_POST['gender']が未定義の状態になりますから、`Notice: Undefined index: hoge`というエラーが発生します。
1
- このにするとどうでしょうか。
6
+ つまりこのエラーは、**使おうとしている配列の要素、もしくは変数が定義されているかどうかを確認することで解決することができ**ます
2
- **ramenn.php**
7
+ 以上のことから、`ramenn.php`は以下のようになると思います。
3
8
  ```PHP
4
9
  <?php
5
10
  ini_set("display_errors", 1);
@@ -20,33 +25,35 @@
20
25
  <form>
21
26
  入力項目です。
22
27
  <?php
28
+ if (!empty($_POST["name"])) {
23
- $name = $_POST['name'];
29
+ $name = $_POST['name'];
24
- print $name . 'さんこんにちは';
30
+ print $name . 'さんこんにちは';
31
+ }
25
32
  ?>
26
-
27
-
28
33
  <p>お名前:</p>
29
34
  <?php
35
+ if (!empty($_POST['name'])) {
30
- $name = $_POST['name'];
36
+ $name = $_POST['name'];
31
- if ($name === "") {
37
+ if ($name === "") {
32
- print 'お名前が入力されていません。';
38
+ print 'お名前が入力されていません。';
33
- } else {
39
+ } else {
34
- print $name . 'さん';
40
+ print $name . 'さん';
41
+ }
35
42
  }
36
43
  ?>
37
44
 
38
45
  <p>性別:</p>
39
- <p>
40
- <?php
46
+ <?php
41
- if (!empty($_POST["gender"])) {
47
+ if (!empty($_POST['gender'])) {
48
+ $gender = $_POST['gender'];
42
- if (($_POST['gender']) == "男" || $_POST['gender'] == "女") {
49
+ if (!empty($_POST['gender']) && ($_POST['gender']) == "男" || $_POST['gender'] == "女") {
43
- print "性別は";
50
+ print "性別は";
44
- print $_POST['gender'];
51
+ print $_POST['gender'];
45
- } else {
52
+ } else {
46
- print '性別が入力されていません';
53
+ print '性別が入力されていません';
47
- }
48
54
  }
55
+ }
49
- ?>
56
+ ?>
50
57
 
51
58
  <p>年齢:</p>
52
59
  <?php
@@ -70,7 +77,7 @@
70
77
 
71
78
  <p>Eメールアドレス:</p>
72
79
  <?php
73
- if (!empty($_POST["mail"])) {
80
+ if (!empty($_POST['mail'])) {
74
81
  $mail = $_POST['mail'];
75
82
  if ($mail === "") {
76
83
  print 'メールが入力されていません';
@@ -101,7 +108,7 @@
101
108
 
102
109
  <p>お好きなトッピング:</p>
103
110
  <?php
104
- if (!empty($_POST["top"])) {
111
+ if (!empty($_POST['top'])) {
105
112
  $top = $_POST['top'];
106
113
  if (empty($top)) {
107
114
  print '好きなトッピングを入力してください';
@@ -115,7 +122,7 @@
115
122
 
116
123
  <p>ご感想:</p>
117
124
  <?php
118
- if (!empty($_POST["kan"])) {
125
+ if (!empty($_POST['kan'])) {
119
126
  $kan = $_POST['kan'];
120
127
  if ($kan === "") {
121
128
  print '';