質問編集履歴
6
追記
title
CHANGED
File without changes
|
body
CHANGED
@@ -118,7 +118,103 @@
|
|
118
118
|
</body>
|
119
119
|
</html>
|
120
120
|
```
|
121
|
+
confirm.php
|
122
|
+
```
|
123
|
+
<?php
|
124
|
+
ini_set('display_errors', "On");
|
121
125
|
|
126
|
+
if (empty($_SERVER["HTTP_REFERER"])) {
|
127
|
+
header('Location: ./contact.php');
|
128
|
+
exit;
|
129
|
+
}
|
130
|
+
|
131
|
+
session_start();
|
132
|
+
require_once('../common/function.php');
|
133
|
+
|
134
|
+
|
135
|
+
if(isset($_POST['name'])) {
|
136
|
+
$_SESSION['name'] = $_POST['name'];
|
137
|
+
}
|
138
|
+
|
139
|
+
if(isset($_POST['kana'])) {
|
140
|
+
$_SESSION['kana'] = $_POST['kana'];
|
141
|
+
}
|
142
|
+
|
143
|
+
if(isset($_POST['tel'])) {
|
144
|
+
$_SESSION['tel'] = $_POST['tel'];
|
145
|
+
}
|
146
|
+
|
147
|
+
if(isset($_POST['email'])) {
|
148
|
+
$_SESSION['email'] = $_POST['email'];
|
149
|
+
}
|
150
|
+
|
151
|
+
if(isset($_POST['contact'])) {
|
152
|
+
$_SESSION['contact'] = $_POST['contact'];
|
153
|
+
}
|
154
|
+
|
155
|
+
?>
|
156
|
+
|
157
|
+
<!DOCTYPE html>
|
158
|
+
<html lang="en">
|
159
|
+
<head>
|
160
|
+
<meta charset="UTF-8">
|
161
|
+
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
162
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
163
|
+
<link rel="stylesheet" href="../style/confirm.css">
|
164
|
+
<link rel="stylesheet" href="../style/footer.css">
|
165
|
+
<link rel="stylesheet" href="../style/header.css">
|
166
|
+
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
|
167
|
+
<script src="../public/js/header.js"></script>
|
168
|
+
<script src="../public/js/header2.js"></script>
|
169
|
+
|
170
|
+
<title>CAFE</title>
|
171
|
+
</head>
|
172
|
+
<body>
|
173
|
+
<?php include("../common/header.php"); ?>
|
174
|
+
<div class="confirm-wrapper">
|
175
|
+
<div class="container">
|
176
|
+
<div class="title">
|
177
|
+
<h2>お問い合わせ</h2>
|
178
|
+
</div>
|
179
|
+
<div class="form-contents">
|
180
|
+
<p class="text">
|
181
|
+
下記の内容をご確認の上送信ボタンを押してください<br>
|
182
|
+
内容を訂正する場合は戻るボタンを押してください。
|
183
|
+
</p>
|
184
|
+
</div>
|
185
|
+
<form action="complete.php" method="POST">
|
186
|
+
<div class="form">
|
187
|
+
<div class="mb-3">
|
188
|
+
<div class="name">氏名</div>
|
189
|
+
<p><?php echo h($_SESSION['name']); ?></p>
|
190
|
+
</div>
|
191
|
+
<div class="mb-3">
|
192
|
+
<div class="name">フリガナ</div>
|
193
|
+
<p><?php echo h($_SESSION['kana']); ?></p>
|
194
|
+
</div>
|
195
|
+
<div class="mb-3">
|
196
|
+
<div class="name">電話番号</div>
|
197
|
+
<p><?php echo h($_SESSION['tel']); ?></p>
|
198
|
+
</div>
|
199
|
+
<div class="mb-3">
|
200
|
+
<div class="name">メールアドレス</div>
|
201
|
+
<p><?php echo h($_SESSION['email']); ?></p>
|
202
|
+
</div>
|
203
|
+
<div class="mb-3">
|
204
|
+
<div class="name">お問い合わせ内容</div>
|
205
|
+
<p><?php echo nl2br(h($_SESSION['contact'])); ?></p>
|
206
|
+
</div>
|
207
|
+
<button type="submit" class="btn">送信</button>
|
208
|
+
<a href="contact.php" class="return-btn">戻る</a>
|
209
|
+
</div>
|
210
|
+
</form>
|
211
|
+
</div>
|
212
|
+
</div>
|
213
|
+
<?php include("../common/footer.php"); ?>
|
214
|
+
</body>
|
215
|
+
</html>
|
216
|
+
```
|
217
|
+
|
122
218
|
バリデーション
|
123
219
|
validation.php
|
124
220
|
```
|
@@ -187,51 +283,41 @@
|
|
187
283
|
|
188
284
|
|
189
285
|
// 名前の空欄チェック
|
190
|
-
if(empty($
|
286
|
+
if(empty($name) || mb_strlen($name) > 10) {
|
191
287
|
$errors['name'] = "名前は必須です。10文字以内で入力してください。";
|
192
288
|
}
|
193
289
|
// フリガナの空欄チェック
|
194
|
-
if(empty($
|
290
|
+
if(empty($kana) || mb_strlen($kana) > 10) {
|
195
291
|
$errors['kana'] = "フリガナは必須です。フリガナは10文字以内で入力してください";
|
196
292
|
}
|
197
293
|
|
198
294
|
// 電話番号のチェック
|
199
|
-
if(!isset($
|
295
|
+
if(!isset($tel) || !preg_match("/^[0-9]+$/", $tel)) {
|
200
296
|
$errors['tel'] = "電話番号は0-9までの数字を入力してください";
|
201
297
|
}
|
202
298
|
|
203
299
|
// 正しいEmailの形式化どうか
|
204
|
-
if(!isset($
|
300
|
+
if(!isset($email) || !filter_var($email, FILTER_VALIDATE_EMAIL)) {
|
205
301
|
$errors['email'] = "正しいメールアドレスを指定してください";
|
206
302
|
}
|
207
303
|
|
208
304
|
// お問い合わせ内容の空欄チェック
|
209
|
-
if(empty($
|
305
|
+
if(empty($contact)) {
|
210
306
|
$errors['contact'] = "お問い合わせ内容は必須です";
|
211
307
|
}
|
212
308
|
}
|
213
|
-
|
214
309
|
if(empty($errors)) {
|
215
|
-
if(isset($_POST['name'])) {
|
216
|
-
|
310
|
+
$_SESSION['name'] = $name;
|
217
|
-
}
|
218
|
-
|
219
|
-
if(isset($_POST['kana'])) {
|
220
|
-
|
311
|
+
$_SESSION['kana'] = $kana;
|
221
|
-
}
|
222
|
-
|
223
|
-
if(isset($_POST['tel'])) {
|
224
|
-
|
312
|
+
$_SESSION['tel'] = $tel;
|
225
|
-
}
|
226
|
-
|
227
|
-
if(isset($_POST['email'])) {
|
228
|
-
|
313
|
+
$_SESSION['email'] = $email;
|
229
|
-
}
|
230
|
-
|
231
|
-
if(isset($_POST['contact'])) {
|
232
|
-
|
314
|
+
$_SESSION['contact'] = $contact;
|
233
|
-
}
|
234
315
|
header('Location: ./confirm.php');
|
235
316
|
}
|
236
317
|
?>
|
237
|
-
```
|
318
|
+
```
|
319
|
+
|
320
|
+
【追記】
|
321
|
+
データを登録し、再度お問い合わせフォームで登録しようとすると、confirm.phpにリダイレクトされ、全て空の状態になってしまっている。
|
322
|
+

|
323
|
+
※本当ならば、氏名などのデータが入っている状態
|
5
追記
title
CHANGED
File without changes
|
body
CHANGED
@@ -172,10 +172,20 @@
|
|
172
172
|
<?php
|
173
173
|
|
174
174
|
$errors = [];
|
175
|
-
|
175
|
+
$name = "";
|
176
|
+
$kana = "";
|
177
|
+
$tel = "";
|
178
|
+
$email = "";
|
179
|
+
$contact = "";
|
176
180
|
if($_SERVER['REQUEST_METHOD'] === 'POST'){
|
177
181
|
//以下バリデーション
|
182
|
+
$name = filter_input(INPUT_POST,'name');
|
183
|
+
$kana = filter_input(INPUT_POST,'kana');
|
184
|
+
$tel = filter_input(INPUT_POST,'tel');
|
185
|
+
$email = filter_input(INPUT_POST,'email');
|
186
|
+
$contact = filter_input(INPUT_POST,'contact');
|
178
187
|
|
188
|
+
|
179
189
|
// 名前の空欄チェック
|
180
190
|
if(empty($_POST['name']) || mb_strlen($_POST['name']) > 10) {
|
181
191
|
$errors['name'] = "名前は必須です。10文字以内で入力してください。";
|
@@ -201,12 +211,26 @@
|
|
201
211
|
}
|
202
212
|
}
|
203
213
|
|
204
|
-
if($errors
|
214
|
+
if(empty($errors)) {
|
215
|
+
if(isset($_POST['name'])) {
|
205
|
-
|
216
|
+
$_SESSION['name'] = $_POST['name'];
|
217
|
+
}
|
218
|
+
|
219
|
+
if(isset($_POST['kana'])) {
|
206
|
-
|
220
|
+
$_SESSION['kana'] = $_POST['kana'];
|
221
|
+
}
|
222
|
+
|
223
|
+
if(isset($_POST['tel'])) {
|
207
|
-
|
224
|
+
$_SESSION['tel'] = $_POST['tel'];
|
225
|
+
}
|
226
|
+
|
227
|
+
if(isset($_POST['email'])) {
|
208
|
-
|
228
|
+
$_SESSION['email'] = $_POST['email'];
|
229
|
+
}
|
230
|
+
|
231
|
+
if(isset($_POST['contact'])) {
|
209
|
-
|
232
|
+
$_SESSION['contact'] = $_POST['contact'];
|
233
|
+
}
|
210
234
|
header('Location: ./confirm.php');
|
211
235
|
}
|
212
236
|
?>
|
4
追記
title
CHANGED
File without changes
|
body
CHANGED
@@ -32,7 +32,7 @@
|
|
32
32
|
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
|
33
33
|
<script src="../public/js/header.js"></script>
|
34
34
|
<script src="../public/js/header2.js"></script>
|
35
|
-
<script src="../public/js/val.js"></script>
|
35
|
+
<!-- <script src="../public/js/val.js"></script> -->
|
36
36
|
<title>CAFE</title>
|
37
37
|
</head>
|
38
38
|
<body>
|
@@ -50,7 +50,7 @@
|
|
50
50
|
なお、ご連絡までに、お時間頂く場合もございますので予めご了承ください。<br>
|
51
51
|
<label class="kome">*</label>は必須項目になります。
|
52
52
|
</p>
|
53
|
-
<form action="
|
53
|
+
<form action="" method="POST">
|
54
54
|
<div class="mb-3">
|
55
55
|
<label>氏名</label><label class="kome">*</label><br>
|
56
56
|
<?php if(isset($errors['name'])): ?>
|
3
追記
title
CHANGED
File without changes
|
body
CHANGED
@@ -171,8 +171,9 @@
|
|
171
171
|
```
|
172
172
|
<?php
|
173
173
|
|
174
|
-
$errors = [];
|
174
|
+
$errors = [];
|
175
|
+
|
175
|
-
if($_SERVER['REQUEST_METHOD'] === 'POST'){
|
176
|
+
if($_SERVER['REQUEST_METHOD'] === 'POST'){
|
176
177
|
//以下バリデーション
|
177
178
|
|
178
179
|
// 名前の空欄チェック
|
@@ -198,14 +199,15 @@
|
|
198
199
|
if(empty($_POST['contact'])) {
|
199
200
|
$errors['contact'] = "お問い合わせ内容は必須です";
|
200
201
|
}
|
202
|
+
}
|
203
|
+
|
201
|
-
|
204
|
+
if($errors === 0) {
|
202
|
-
$_SESSION['name'] = $_POST['name'];
|
205
|
+
$_SESSION['name'] = $_POST['name'];
|
203
|
-
$_SESSION['kana'] = $_POST['kana'];
|
206
|
+
$_SESSION['kana'] = $_POST['kana'];
|
204
|
-
$_SESSION['tel'] = $_POST['tel'];
|
207
|
+
$_SESSION['tel'] = $_POST['tel'];
|
205
|
-
$_SESSION['email'] = $_POST['email'];
|
208
|
+
$_SESSION['email'] = $_POST['email'];
|
206
|
-
$_SESSION['contact'] = $_POST['contact'];
|
209
|
+
$_SESSION['contact'] = $_POST['contact'];
|
207
210
|
header('Location: ./confirm.php');
|
208
|
-
exit;
|
209
211
|
}
|
210
212
|
?>
|
211
213
|
```
|
2
追記
title
CHANGED
File without changes
|
body
CHANGED
@@ -166,4 +166,46 @@
|
|
166
166
|
notice:indexなので、validation.phpの19行目にあるようにissetをつけたり外したりした。
|
167
167
|
つけると、バリデーションメッセージが表示されなくなる。
|
168
168
|
|
169
|
-
どのようにコードを書けば、名前やフリガナのようにnoticeエラーも表示されずにバリデーションメッセージが表示されるのでしょうか?
|
169
|
+
どのようにコードを書けば、名前やフリガナのようにnoticeエラーも表示されずにバリデーションメッセージが表示されるのでしょうか?
|
170
|
+
|
171
|
+
```
|
172
|
+
<?php
|
173
|
+
|
174
|
+
$errors = [];
|
175
|
+
if($_SERVER['REQUEST_METHOD'] === 'POST'){
|
176
|
+
//以下バリデーション
|
177
|
+
|
178
|
+
// 名前の空欄チェック
|
179
|
+
if(empty($_POST['name']) || mb_strlen($_POST['name']) > 10) {
|
180
|
+
$errors['name'] = "名前は必須です。10文字以内で入力してください。";
|
181
|
+
}
|
182
|
+
// フリガナの空欄チェック
|
183
|
+
if(empty($_POST['kana']) || mb_strlen($_POST['kana']) > 10) {
|
184
|
+
$errors['kana'] = "フリガナは必須です。フリガナは10文字以内で入力してください";
|
185
|
+
}
|
186
|
+
|
187
|
+
// 電話番号のチェック
|
188
|
+
if(!isset($_POST['tel']) || !preg_match("/^[0-9]+$/", $_POST['tel'])) {
|
189
|
+
$errors['tel'] = "電話番号は0-9までの数字を入力してください";
|
190
|
+
}
|
191
|
+
|
192
|
+
// 正しいEmailの形式化どうか
|
193
|
+
if(!isset($_POST['email']) || !filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) {
|
194
|
+
$errors['email'] = "正しいメールアドレスを指定してください";
|
195
|
+
}
|
196
|
+
|
197
|
+
// お問い合わせ内容の空欄チェック
|
198
|
+
if(empty($_POST['contact'])) {
|
199
|
+
$errors['contact'] = "お問い合わせ内容は必須です";
|
200
|
+
}
|
201
|
+
} else {
|
202
|
+
$_SESSION['name'] = $_POST['name'];
|
203
|
+
$_SESSION['kana'] = $_POST['kana'];
|
204
|
+
$_SESSION['tel'] = $_POST['tel'];
|
205
|
+
$_SESSION['email'] = $_POST['email'];
|
206
|
+
$_SESSION['contact'] = $_POST['contact'];
|
207
|
+
header('Location: ./confirm.php');
|
208
|
+
exit;
|
209
|
+
}
|
210
|
+
?>
|
211
|
+
```
|
1
追記
title
CHANGED
File without changes
|
body
CHANGED
@@ -9,6 +9,47 @@
|
|
9
9
|
お問い合わせフォーム
|
10
10
|
contact.php
|
11
11
|
```
|
12
|
+
<?php
|
13
|
+
ini_set('display_errors', "On");
|
14
|
+
|
15
|
+
session_start();
|
16
|
+
require '../common/header.php';
|
17
|
+
require_once('validation.php');
|
18
|
+
require_once('../common/database.php');
|
19
|
+
require_once('../common/function.php');
|
20
|
+
$contactData = getDatabaseSelect();
|
21
|
+
?>
|
22
|
+
|
23
|
+
<!DOCTYPE html>
|
24
|
+
<html lang="en">
|
25
|
+
<head>
|
26
|
+
<meta charset="UTF-8">
|
27
|
+
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
28
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
29
|
+
<link rel="stylesheet" href="../style/contact.css">
|
30
|
+
<link rel="stylesheet" href="../style/header.css">
|
31
|
+
<link rel="stylesheet" href="../style/footer.css">
|
32
|
+
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
|
33
|
+
<script src="../public/js/header.js"></script>
|
34
|
+
<script src="../public/js/header2.js"></script>
|
35
|
+
<script src="../public/js/val.js"></script>
|
36
|
+
<title>CAFE</title>
|
37
|
+
</head>
|
38
|
+
<body>
|
39
|
+
<div class="contact-wrapper">
|
40
|
+
<div class="container">
|
41
|
+
<div class="top-title">
|
42
|
+
<h2>お問い合わせ</h2>
|
43
|
+
</div>
|
44
|
+
<div class="form-contents">
|
45
|
+
<div class="f-title">
|
46
|
+
<h3>下記の項目をご記入の上送信ボタンを押してください</h3>
|
47
|
+
</div>
|
48
|
+
<p class="text">
|
49
|
+
送信頂いた件につきましては、当社より折り返しご連絡差し上げます。<br>
|
50
|
+
なお、ご連絡までに、お時間頂く場合もございますので予めご了承ください。<br>
|
51
|
+
<label class="kome">*</label>は必須項目になります。
|
52
|
+
</p>
|
12
53
|
<form action="confirm.php" method="POST">
|
13
54
|
<div class="mb-3">
|
14
55
|
<label>氏名</label><label class="kome">*</label><br>
|
@@ -50,6 +91,32 @@
|
|
50
91
|
<input type="hidden" name="csrf_token" value="<?php echo setToken(); ?>">
|
51
92
|
<button type="submit" class="btn" name="btn_confirm">送信</button>
|
52
93
|
</form>
|
94
|
+
</div>
|
95
|
+
</div>
|
96
|
+
</div>
|
97
|
+
<table>
|
98
|
+
<tr>
|
99
|
+
<th>氏名</th>
|
100
|
+
<th>フリガナ</th>
|
101
|
+
<th>電話番号</th>
|
102
|
+
<th>メールアドレス</th>
|
103
|
+
<th>お問い合わせ内容</th>
|
104
|
+
</tr>
|
105
|
+
<?php foreach($contactData as $col): ?>
|
106
|
+
<tr>
|
107
|
+
<td><?php echo h($col['name']) ?></td>
|
108
|
+
<td><?php echo h($col['kana']) ?></td>
|
109
|
+
<td><?php echo h($col['tel']) ?></td>
|
110
|
+
<td><?php echo h($col['email']) ?></td>
|
111
|
+
<td><?php echo nl2br(h($col['body'])) ?></td>
|
112
|
+
<td><a href="edit.php?id=<?php echo h($col['id']); ?>">編集</a></td>
|
113
|
+
<td><a class="delete-btn" href="delete.php?id=<?php echo h($col['id']); ?>">削除</a></td>
|
114
|
+
</tr>
|
115
|
+
<?php endforeach; ?>
|
116
|
+
</table>
|
117
|
+
<?php include("../common/footer.php"); ?>
|
118
|
+
</body>
|
119
|
+
</html>
|
53
120
|
```
|
54
121
|
|
55
122
|
バリデーション
|