質問編集履歴

6

追記

2021/02/28 10:09

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -238,6 +238,198 @@
238
238
 
239
239
  ```
240
240
 
241
+ confirm.php
242
+
243
+ ```
244
+
245
+ <?php
246
+
247
+ ini_set('display_errors', "On");
248
+
249
+
250
+
251
+ if (empty($_SERVER["HTTP_REFERER"])) {
252
+
253
+ header('Location: ./contact.php');
254
+
255
+ exit;
256
+
257
+ }
258
+
259
+
260
+
261
+ session_start();
262
+
263
+ require_once('../common/function.php');
264
+
265
+
266
+
267
+
268
+
269
+ if(isset($_POST['name'])) {
270
+
271
+ $_SESSION['name'] = $_POST['name'];
272
+
273
+ }
274
+
275
+
276
+
277
+ if(isset($_POST['kana'])) {
278
+
279
+ $_SESSION['kana'] = $_POST['kana'];
280
+
281
+ }
282
+
283
+
284
+
285
+ if(isset($_POST['tel'])) {
286
+
287
+ $_SESSION['tel'] = $_POST['tel'];
288
+
289
+ }
290
+
291
+
292
+
293
+ if(isset($_POST['email'])) {
294
+
295
+ $_SESSION['email'] = $_POST['email'];
296
+
297
+ }
298
+
299
+
300
+
301
+ if(isset($_POST['contact'])) {
302
+
303
+ $_SESSION['contact'] = $_POST['contact'];
304
+
305
+ }
306
+
307
+
308
+
309
+ ?>
310
+
311
+
312
+
313
+ <!DOCTYPE html>
314
+
315
+ <html lang="en">
316
+
317
+ <head>
318
+
319
+ <meta charset="UTF-8">
320
+
321
+ <meta http-equiv="X-UA-Compatible" content="IE=edge">
322
+
323
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
324
+
325
+ <link rel="stylesheet" href="../style/confirm.css">
326
+
327
+ <link rel="stylesheet" href="../style/footer.css">
328
+
329
+ <link rel="stylesheet" href="../style/header.css">
330
+
331
+ <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
332
+
333
+ <script src="../public/js/header.js"></script>
334
+
335
+ <script src="../public/js/header2.js"></script>
336
+
337
+
338
+
339
+ <title>CAFE</title>
340
+
341
+ </head>
342
+
343
+ <body>
344
+
345
+ <?php include("../common/header.php"); ?>
346
+
347
+ <div class="confirm-wrapper">
348
+
349
+ <div class="container">
350
+
351
+ <div class="title">
352
+
353
+ <h2>お問い合わせ</h2>
354
+
355
+ </div>
356
+
357
+ <div class="form-contents">
358
+
359
+ <p class="text">
360
+
361
+ 下記の内容をご確認の上送信ボタンを押してください<br>
362
+
363
+ 内容を訂正する場合は戻るボタンを押してください。
364
+
365
+ </p>
366
+
367
+ </div>
368
+
369
+ <form action="complete.php" method="POST">
370
+
371
+ <div class="form">
372
+
373
+ <div class="mb-3">
374
+
375
+ <div class="name">氏名</div>
376
+
377
+ <p><?php echo h($_SESSION['name']); ?></p>
378
+
379
+ </div>
380
+
381
+ <div class="mb-3">
382
+
383
+ <div class="name">フリガナ</div>
384
+
385
+ <p><?php echo h($_SESSION['kana']); ?></p>
386
+
387
+ </div>
388
+
389
+ <div class="mb-3">
390
+
391
+ <div class="name">電話番号</div>
392
+
393
+ <p><?php echo h($_SESSION['tel']); ?></p>
394
+
395
+ </div>
396
+
397
+ <div class="mb-3">
398
+
399
+ <div class="name">メールアドレス</div>
400
+
401
+ <p><?php echo h($_SESSION['email']); ?></p>
402
+
403
+ </div>
404
+
405
+ <div class="mb-3">
406
+
407
+ <div class="name">お問い合わせ内容</div>
408
+
409
+ <p><?php echo nl2br(h($_SESSION['contact'])); ?></p>
410
+
411
+ </div>
412
+
413
+ <button type="submit" class="btn">送信</button>
414
+
415
+ <a href="contact.php" class="return-btn">戻る</a>
416
+
417
+ </div>
418
+
419
+ </form>
420
+
421
+ </div>
422
+
423
+ </div>
424
+
425
+ <?php include("../common/footer.php"); ?>
426
+
427
+ </body>
428
+
429
+ </html>
430
+
431
+ ```
432
+
241
433
 
242
434
 
243
435
  バリデーション
@@ -376,7 +568,7 @@
376
568
 
377
569
  // 名前の空欄チェック
378
570
 
379
- if(empty($_POST['name']) || mb_strlen($_POST['name']) > 10) {
571
+ if(empty($name) || mb_strlen($name) > 10) {
380
572
 
381
573
  $errors['name'] = "名前は必須です。10文字以内で入力してください。";
382
574
 
@@ -384,7 +576,7 @@
384
576
 
385
577
  // フリガナの空欄チェック
386
578
 
387
- if(empty($_POST['kana']) || mb_strlen($_POST['kana']) > 10) {
579
+ if(empty($kana) || mb_strlen($kana) > 10) {
388
580
 
389
581
  $errors['kana'] = "フリガナは必須です。フリガナは10文字以内で入力してください";
390
582
 
@@ -394,7 +586,7 @@
394
586
 
395
587
  // 電話番号のチェック
396
588
 
397
- if(!isset($_POST['tel']) || !preg_match("/^[0-9]+$/", $_POST['tel'])) {
589
+ if(!isset($tel) || !preg_match("/^[0-9]+$/", $tel)) {
398
590
 
399
591
  $errors['tel'] = "電話番号は0-9までの数字を入力してください";
400
592
 
@@ -404,7 +596,7 @@
404
596
 
405
597
  // 正しいEmailの形式化どうか
406
598
 
407
- if(!isset($_POST['email']) || !filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) {
599
+ if(!isset($email) || !filter_var($email, FILTER_VALIDATE_EMAIL)) {
408
600
 
409
601
  $errors['email'] = "正しいメールアドレスを指定してください";
410
602
 
@@ -414,7 +606,7 @@
414
606
 
415
607
  // お問い合わせ内容の空欄チェック
416
608
 
417
- if(empty($_POST['contact'])) {
609
+ if(empty($contact)) {
418
610
 
419
611
  $errors['contact'] = "お問い合わせ内容は必須です";
420
612
 
@@ -422,47 +614,17 @@
422
614
 
423
615
  }
424
616
 
425
-
426
-
427
617
  if(empty($errors)) {
428
618
 
429
- if(isset($_POST['name'])) {
430
-
431
- $_SESSION['name'] = $_POST['name'];
619
+ $_SESSION['name'] = $name;
432
-
433
- }
620
+
434
-
435
-
436
-
437
- if(isset($_POST['kana'])) {
438
-
439
- $_SESSION['kana'] = $_POST['kana'];
621
+ $_SESSION['kana'] = $kana;
440
-
441
- }
622
+
442
-
443
-
444
-
445
- if(isset($_POST['tel'])) {
446
-
447
- $_SESSION['tel'] = $_POST['tel'];
623
+ $_SESSION['tel'] = $tel;
448
-
449
- }
624
+
450
-
451
-
452
-
453
- if(isset($_POST['email'])) {
454
-
455
- $_SESSION['email'] = $_POST['email'];
625
+ $_SESSION['email'] = $email;
456
-
457
- }
626
+
458
-
459
-
460
-
461
- if(isset($_POST['contact'])) {
462
-
463
- $_SESSION['contact'] = $_POST['contact'];
627
+ $_SESSION['contact'] = $contact;
464
-
465
- }
466
628
 
467
629
  header('Location: ./confirm.php');
468
630
 
@@ -471,3 +633,13 @@
471
633
  ?>
472
634
 
473
635
  ```
636
+
637
+
638
+
639
+ 【追記】
640
+
641
+ データを登録し、再度お問い合わせフォームで登録しようとすると、confirm.phpにリダイレクトされ、全て空の状態になってしまっている。
642
+
643
+ ![イメージ説明](016f9f566a9a05bf45882428a539430b.png)
644
+
645
+ ※本当ならば、氏名などのデータが入っている状態

5

追記

2021/02/28 10:09

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -346,12 +346,32 @@
346
346
 
347
347
  $errors = [];
348
348
 
349
-
349
+ $name = "";
350
+
351
+ $kana = "";
352
+
353
+ $tel = "";
354
+
355
+ $email = "";
356
+
357
+ $contact = "";
350
358
 
351
359
  if($_SERVER['REQUEST_METHOD'] === 'POST'){
352
360
 
353
361
  //以下バリデーション
354
362
 
363
+ $name = filter_input(INPUT_POST,'name');
364
+
365
+ $kana = filter_input(INPUT_POST,'kana');
366
+
367
+ $tel = filter_input(INPUT_POST,'tel');
368
+
369
+ $email = filter_input(INPUT_POST,'email');
370
+
371
+ $contact = filter_input(INPUT_POST,'contact');
372
+
373
+
374
+
355
375
 
356
376
 
357
377
  // 名前の空欄チェック
@@ -404,17 +424,45 @@
404
424
 
405
425
 
406
426
 
407
- if($errors === 0) {
427
+ if(empty($errors)) {
428
+
408
-
429
+ if(isset($_POST['name'])) {
430
+
409
- $_SESSION['name'] = $_POST['name'];
431
+ $_SESSION['name'] = $_POST['name'];
432
+
410
-
433
+ }
434
+
435
+
436
+
437
+ if(isset($_POST['kana'])) {
438
+
411
- $_SESSION['kana'] = $_POST['kana'];
439
+ $_SESSION['kana'] = $_POST['kana'];
440
+
412
-
441
+ }
442
+
443
+
444
+
445
+ if(isset($_POST['tel'])) {
446
+
413
- $_SESSION['tel'] = $_POST['tel'];
447
+ $_SESSION['tel'] = $_POST['tel'];
448
+
414
-
449
+ }
450
+
451
+
452
+
453
+ if(isset($_POST['email'])) {
454
+
415
- $_SESSION['email'] = $_POST['email'];
455
+ $_SESSION['email'] = $_POST['email'];
456
+
416
-
457
+ }
458
+
459
+
460
+
461
+ if(isset($_POST['contact'])) {
462
+
417
- $_SESSION['contact'] = $_POST['contact'];
463
+ $_SESSION['contact'] = $_POST['contact'];
464
+
465
+ }
418
466
 
419
467
  header('Location: ./confirm.php');
420
468
 

4

追記

2021/02/28 09:32

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -66,7 +66,7 @@
66
66
 
67
67
  <script src="../public/js/header2.js"></script>
68
68
 
69
- <script src="../public/js/val.js"></script>
69
+ <!-- <script src="../public/js/val.js"></script> -->
70
70
 
71
71
  <title>CAFE</title>
72
72
 
@@ -102,7 +102,7 @@
102
102
 
103
103
  </p>
104
104
 
105
- <form action="confirm.php" method="POST">
105
+ <form action="" method="POST">
106
106
 
107
107
  <div class="mb-3">
108
108
 

3

追記

2021/02/28 08:13

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -344,9 +344,11 @@
344
344
 
345
345
 
346
346
 
347
- $errors = [];
347
+ $errors = [];
348
-
348
+
349
+
350
+
349
- if($_SERVER['REQUEST_METHOD'] === 'POST'){
351
+ if($_SERVER['REQUEST_METHOD'] === 'POST'){
350
352
 
351
353
  //以下バリデーション
352
354
 
@@ -398,22 +400,24 @@
398
400
 
399
401
  }
400
402
 
403
+ }
404
+
405
+
406
+
401
- } else {
407
+ if($errors === 0) {
402
-
408
+
403
- $_SESSION['name'] = $_POST['name'];
409
+ $_SESSION['name'] = $_POST['name'];
404
-
410
+
405
- $_SESSION['kana'] = $_POST['kana'];
411
+ $_SESSION['kana'] = $_POST['kana'];
406
-
412
+
407
- $_SESSION['tel'] = $_POST['tel'];
413
+ $_SESSION['tel'] = $_POST['tel'];
408
-
414
+
409
- $_SESSION['email'] = $_POST['email'];
415
+ $_SESSION['email'] = $_POST['email'];
410
-
416
+
411
- $_SESSION['contact'] = $_POST['contact'];
417
+ $_SESSION['contact'] = $_POST['contact'];
412
418
 
413
419
  header('Location: ./confirm.php');
414
420
 
415
- exit;
416
-
417
421
  }
418
422
 
419
423
  ?>

2

追記

2021/02/28 08:12

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -335,3 +335,87 @@
335
335
 
336
336
 
337
337
  どのようにコードを書けば、名前やフリガナのようにnoticeエラーも表示されずにバリデーションメッセージが表示されるのでしょうか?
338
+
339
+
340
+
341
+ ```
342
+
343
+ <?php
344
+
345
+
346
+
347
+ $errors = [];
348
+
349
+ if($_SERVER['REQUEST_METHOD'] === 'POST'){
350
+
351
+ //以下バリデーション
352
+
353
+
354
+
355
+ // 名前の空欄チェック
356
+
357
+ if(empty($_POST['name']) || mb_strlen($_POST['name']) > 10) {
358
+
359
+ $errors['name'] = "名前は必須です。10文字以内で入力してください。";
360
+
361
+ }
362
+
363
+ // フリガナの空欄チェック
364
+
365
+ if(empty($_POST['kana']) || mb_strlen($_POST['kana']) > 10) {
366
+
367
+ $errors['kana'] = "フリガナは必須です。フリガナは10文字以内で入力してください";
368
+
369
+ }
370
+
371
+
372
+
373
+ // 電話番号のチェック
374
+
375
+ if(!isset($_POST['tel']) || !preg_match("/^[0-9]+$/", $_POST['tel'])) {
376
+
377
+ $errors['tel'] = "電話番号は0-9までの数字を入力してください";
378
+
379
+ }
380
+
381
+
382
+
383
+ // 正しいEmailの形式化どうか
384
+
385
+ if(!isset($_POST['email']) || !filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) {
386
+
387
+ $errors['email'] = "正しいメールアドレスを指定してください";
388
+
389
+ }
390
+
391
+
392
+
393
+ // お問い合わせ内容の空欄チェック
394
+
395
+ if(empty($_POST['contact'])) {
396
+
397
+ $errors['contact'] = "お問い合わせ内容は必須です";
398
+
399
+ }
400
+
401
+ } else {
402
+
403
+ $_SESSION['name'] = $_POST['name'];
404
+
405
+ $_SESSION['kana'] = $_POST['kana'];
406
+
407
+ $_SESSION['tel'] = $_POST['tel'];
408
+
409
+ $_SESSION['email'] = $_POST['email'];
410
+
411
+ $_SESSION['contact'] = $_POST['contact'];
412
+
413
+ header('Location: ./confirm.php');
414
+
415
+ exit;
416
+
417
+ }
418
+
419
+ ?>
420
+
421
+ ```

1

追記

2021/02/28 07:07

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -20,6 +20,88 @@
20
20
 
21
21
  ```
22
22
 
23
+ <?php
24
+
25
+ ini_set('display_errors', "On");
26
+
27
+
28
+
29
+ session_start();
30
+
31
+ require '../common/header.php';
32
+
33
+ require_once('validation.php');
34
+
35
+ require_once('../common/database.php');
36
+
37
+ require_once('../common/function.php');
38
+
39
+ $contactData = getDatabaseSelect();
40
+
41
+ ?>
42
+
43
+
44
+
45
+ <!DOCTYPE html>
46
+
47
+ <html lang="en">
48
+
49
+ <head>
50
+
51
+ <meta charset="UTF-8">
52
+
53
+ <meta http-equiv="X-UA-Compatible" content="IE=edge">
54
+
55
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
56
+
57
+ <link rel="stylesheet" href="../style/contact.css">
58
+
59
+ <link rel="stylesheet" href="../style/header.css">
60
+
61
+ <link rel="stylesheet" href="../style/footer.css">
62
+
63
+ <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
64
+
65
+ <script src="../public/js/header.js"></script>
66
+
67
+ <script src="../public/js/header2.js"></script>
68
+
69
+ <script src="../public/js/val.js"></script>
70
+
71
+ <title>CAFE</title>
72
+
73
+ </head>
74
+
75
+ <body>
76
+
77
+ <div class="contact-wrapper">
78
+
79
+ <div class="container">
80
+
81
+ <div class="top-title">
82
+
83
+ <h2>お問い合わせ</h2>
84
+
85
+ </div>
86
+
87
+ <div class="form-contents">
88
+
89
+ <div class="f-title">
90
+
91
+ <h3>下記の項目をご記入の上送信ボタンを押してください</h3>
92
+
93
+ </div>
94
+
95
+ <p class="text">
96
+
97
+ 送信頂いた件につきましては、当社より折り返しご連絡差し上げます。<br>
98
+
99
+ なお、ご連絡までに、お時間頂く場合もございますので予めご了承ください。<br>
100
+
101
+ <label class="kome">*</label>は必須項目になります。
102
+
103
+ </p>
104
+
23
105
  <form action="confirm.php" method="POST">
24
106
 
25
107
  <div class="mb-3">
@@ -102,6 +184,58 @@
102
184
 
103
185
  </form>
104
186
 
187
+ </div>
188
+
189
+ </div>
190
+
191
+ </div>
192
+
193
+ <table>
194
+
195
+ <tr>
196
+
197
+ <th>氏名</th>
198
+
199
+ <th>フリガナ</th>
200
+
201
+ <th>電話番号</th>
202
+
203
+ <th>メールアドレス</th>
204
+
205
+ <th>お問い合わせ内容</th>
206
+
207
+ </tr>
208
+
209
+ <?php foreach($contactData as $col): ?>
210
+
211
+ <tr>
212
+
213
+ <td><?php echo h($col['name']) ?></td>
214
+
215
+ <td><?php echo h($col['kana']) ?></td>
216
+
217
+ <td><?php echo h($col['tel']) ?></td>
218
+
219
+ <td><?php echo h($col['email']) ?></td>
220
+
221
+ <td><?php echo nl2br(h($col['body'])) ?></td>
222
+
223
+ <td><a href="edit.php?id=<?php echo h($col['id']); ?>">編集</a></td>
224
+
225
+ <td><a class="delete-btn" href="delete.php?id=<?php echo h($col['id']); ?>">削除</a></td>
226
+
227
+ </tr>
228
+
229
+ <?php endforeach; ?>
230
+
231
+ </table>
232
+
233
+ <?php include("../common/footer.php"); ?>
234
+
235
+ </body>
236
+
237
+ </html>
238
+
105
239
  ```
106
240
 
107
241