質問編集履歴

3

さらに追記

2021/02/27 06:42

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -195,3 +195,155 @@
195
195
  <?php endif; ?>
196
196
 
197
197
  ```
198
+
199
+
200
+
201
+ さらに追記:
202
+
203
+ ・バリデーションエラーのメッセージは出るが、画面上部にエラーが出力されてしまう
204
+
205
+ ```
206
+
207
+ <?php if(isset($errors)): ?>
208
+
209
+ <div class="mb-3">
210
+
211
+ <label>氏名</label><label class="kome">*</label><br>
212
+
213
+ <div class="vali"><?php echo $errors['name']; ?></div>
214
+
215
+ <input type="text" id="f-name" name="name" value="" placeholder="山田太郎">
216
+
217
+ </div>
218
+
219
+ <div class="mb-3">
220
+
221
+ <label>フリガナ</label><label class="kome">*</label><br>
222
+
223
+ <div class="vali"><?php echo $errors['kana']; ?></div>
224
+
225
+ <input type="text" id="f-kana" name="kana" value="" placeholder="ヤマダタロウ">
226
+
227
+ </div>
228
+
229
+ <div class="mb-3">
230
+
231
+ <label>電話番号</label><label class="kome">*</label><br>
232
+
233
+ <div class="vali"><?php echo $errors['tel']; ?></div>
234
+
235
+ <input type="text" id="f-tel" name="tel" value="" placeholder="09012345678">
236
+
237
+ </div>
238
+
239
+ <div class="mb-3">
240
+
241
+ <label>メールアドレス</label><label class="kome">*</label><br>
242
+
243
+ <div class="vali"><?php echo $errors['email']; ?></div>
244
+
245
+ <input type="text" id="f-email" name="email" value="" placeholder="test@test.co.jp">
246
+
247
+ </div>
248
+
249
+ <div class="f-title f-bottom">
250
+
251
+ <h3>お問い合わせ内容をご記入ください<label class="kome">*</label></h3>
252
+
253
+ </div>
254
+
255
+ <div class="vali"><?php echo $errors['contact']; ?></div>
256
+
257
+ <div class="mb-3">
258
+
259
+ <textarea id="contact" name="contact" rows="7"></textarea>
260
+
261
+ </div>
262
+
263
+ <input type="hidden" name="csrf_token" value="<?php echo setToken(); ?>">
264
+
265
+ <button type="submit" class="btn" name="btn_confirm">送信</button>
266
+
267
+ <?php endif; ?>
268
+
269
+ ```
270
+
271
+
272
+
273
+ ```
274
+
275
+ <?php
276
+
277
+
278
+
279
+ $errors = [];
280
+
281
+
282
+
283
+ // 名前の空欄チェック
284
+
285
+ if(empty($_POST['name']) || mb_strlen($_POST['name']) > 10) {
286
+
287
+ $errors['name'] = "名前は必須です。10文字以内で入力してください。";
288
+
289
+ }
290
+
291
+ // $_SESSION['name'] = htmlspecialchars($_POST['name'], ENT_QUOTES, "UTF-8");
292
+
293
+ // フリガナの空欄チェック
294
+
295
+ if(empty($_POST['kana']) || mb_strlen($_POST['kana']) > 10) {
296
+
297
+ $errors['kana'] = "フリガナは必須です。フリガナは10文字以内で入力してください";
298
+
299
+ }
300
+
301
+
302
+
303
+ // 電話番号のチェック
304
+
305
+ // if(isset($_POST['email'])) {
306
+
307
+ if(!preg_match("/^[0-9]+$/", $_POST['tel'])) {
308
+
309
+ $errors['tel'] = "電話番号は0-9までの数字を入力してください";
310
+
311
+ }
312
+
313
+ // }
314
+
315
+
316
+
317
+ // 正しいEmailの形式化どうか
318
+
319
+ // if(isset($_POST['email'])) {
320
+
321
+ if(!filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) {
322
+
323
+ $errors['email'] = "正しいメールアドレスを指定してください";
324
+
325
+ }
326
+
327
+ // }
328
+
329
+
330
+
331
+ // お問い合わせ内容の空欄チェック
332
+
333
+ if(empty($_POST['contact'])) {
334
+
335
+ $errors['contact'] = "お問い合わせ内容は必須です";
336
+
337
+ }
338
+
339
+ ?>
340
+
341
+ ```
342
+
343
+ ![イメージ説明](dde457e3a60c413bb683a37f01ba2c0a.png)
344
+
345
+
346
+
347
+ ただ、 // if(isset($_POST['email'])) {のコメントアウトを外すと、画面上部にエラ〜メッセージは出力されないが、バリデーションメッセージが無効になってしまう。
348
+
349
+ ![イメージ説明](be0c53d160b00af5bf0089c3a8e3ed8a.png)

2

追記

2021/02/27 06:42

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -179,3 +179,19 @@
179
179
 
180
180
 
181
181
  お願いいたします。
182
+
183
+
184
+
185
+ 追記:
186
+
187
+ 問題のcontact.phpに以下を追記しましたが、バリデーションのメッセージが表示されない。
188
+
189
+ ```
190
+
191
+ <?php if(isset($_POST['tel'])): ?>
192
+
193
+ <div class="vali"><?php echo $errors['tel']; ?></div>
194
+
195
+ <?php endif; ?>
196
+
197
+ ```

1

追記

2021/02/27 03:56

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -8,7 +8,7 @@
8
8
 
9
9
  ##該当のソースコード
10
10
 
11
-
11
+ contact.php
12
12
 
13
13
  ```
14
14
 
@@ -148,6 +148,28 @@
148
148
 
149
149
  ```
150
150
 
151
+ contact.phpの100行目
152
+
153
+ ```
154
+
155
+ <div class="vali"><?php echo $errors['tel']; ?></div>
156
+
157
+ ```
158
+
159
+
160
+
161
+ contact.phpの105行目
162
+
163
+ ```
164
+
165
+ <div class="vali"><?php echo $errors['email']; ?></div>
166
+
167
+
168
+
169
+ ```
170
+
171
+
172
+
151
173
 
152
174
 
153
175
  ##試したこと