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

回答編集履歴

1

追記

2016/04/05 23:58

投稿

orange0190
orange0190

スコア1698

answer CHANGED
@@ -55,4 +55,111 @@
55
55
  }
56
56
  }
57
57
  ```
58
- 最初に指摘した部分が`if (isset($_POST ["register"])) {}`の外にあるため、エラーがあっても表示できません。
58
+ 最初に指摘した部分が`if (isset($_POST ["register"])) {}`の外にあるため、エラーがあっても表示できません。
59
+
60
+ ---
61
+ 追記
62
+ 他の方が指摘されていたように、エラーメッセージの表示場所に問題があるので、その点も踏まえて次のようにするとどうでしょうか。
63
+ ```PHP
64
+ <?
65
+ //送信ボタンが押されたら//
66
+ $error_message = array (); //<--ここ$error_messageを定義
67
+ if (isset($_POST ["register"])) {
68
+ //エラーメッセージを格納する配列を作成
69
+ if ($_POST ["onamae"]!=="") {
70
+ //データがセットされていたら各変数にPOSTのデータを格納
71
+ $onamae = htmlspecialchars($_POST["onamae"],ENT_QUOTES);
72
+ //各データがなかったらエラーメッセージを配列に格納
73
+ }else{
74
+ $error_message[] = "お名前を入力して下さい。<br>";
75
+ }
76
+
77
+ if ($_POST["mailadress"]!=="") {
78
+ $mailadress = htmlspecialchars($_POST["mailadress"],ENT_QUOTES);
79
+ }else{
80
+ $error_message[] = "メールアドレスを入力してください。<br>";
81
+ }
82
+
83
+ if ($_POST["category"]!=="") {
84
+ $mailadress = htmlspecialchars($_POST["category"],ENT_QUOTES);
85
+ }else{
86
+ $error_message[] = "お問い合わせの種類を選択してください。<br>";
87
+ }
88
+
89
+ if ($_POST["interest[]"]!=="") {
90
+ $mailadress = htmlspecialchars($_POST["interest"],ENT_QUOTES);
91
+ }else{
92
+ $error_message[] = "興味のある分野を1つ以上選択してください。<br>";
93
+ }
94
+ if ($_POST["body"]!=="") {
95
+ $mailadress = htmlspecialchars($_POST["body"],ENT_QUOTES);
96
+ }else{
97
+ $error_message[] = "メッセージを入力してください。<br>";
98
+ }
99
+ //エラーが無い時
100
+ if (!count($error_message)){
101
+ //確認ページヘ
102
+ header("Location:confirm.php");
103
+ exit;
104
+ }
105
+ }
106
+ ?>
107
+ <!DOCTYPE HTML>
108
+ <html>
109
+ <head>
110
+ <title>お問い合わせフォーム</title>
111
+ <meta charset="utf-8">
112
+ </head>
113
+ <body>
114
+ <?php
115
+ //ここに記述することでhtml内で表示させる
116
+ if (count($error_message)) {
117
+ foreach ($error_message as $message){
118
+ print ($message);
119
+ }
120
+ }
121
+ ?>
122
+ <form name="form1" method="post"action="confirm.php" >
123
+
124
+ <H1>お問い合わせフォーム</H1>
125
+ ・お名前<br>
126
+ <input type="text" name="onamae" >
127
+ <br>
128
+
129
+ ・メールアドレス<br>
130
+ <input type="text" name="mailadress">
131
+ <br>
132
+
133
+ ・お問い合わせの種類<br>
134
+ <select name="category" >
135
+ <option value=""selected>選んで下さい</option>
136
+ <option value="質問">質問</option>
137
+ <option value="要望">要望</option>
138
+ <option value="その他お問い合わせ">その他お問い合わせ</option>
139
+ </select>
140
+ <br>
141
+
142
+ ・興味のある分野<br>
143
+ <input type="checkbox" name="interest[]" value="HTML">
144
+ HTML<br>
145
+ <input type="checkbox" name="interest[]" value="PHP">
146
+ PHP<br>
147
+ <input type="checkbox" name="interest[]" value="MySQL">
148
+ MySQL<br>
149
+ <input type="checkbox" name="interest[]" value="Linux">
150
+ Linux<br>
151
+ <input type="checkbox" name="interest[]" value="マネジメント">
152
+ マネジメント<br>
153
+ <input type="checkbox" name="interest[]" value="その他">
154
+ その他<br>
155
+
156
+ ・メッセージ<br>
157
+ <textarea name="body" cols="30" rows="5"></textarea>
158
+ <br>
159
+
160
+ <input type="submit" name="register value="送信">
161
+
162
+ </form>
163
+ </body>
164
+ </html>
165
+ ```