質問編集履歴
3
さらに追記
title
CHANGED
File without changes
|
body
CHANGED
@@ -96,4 +96,80 @@
|
|
96
96
|
<?php if(isset($_POST['tel'])): ?>
|
97
97
|
<div class="vali"><?php echo $errors['tel']; ?></div>
|
98
98
|
<?php endif; ?>
|
99
|
-
```
|
99
|
+
```
|
100
|
+
|
101
|
+
さらに追記:
|
102
|
+
・バリデーションエラーのメッセージは出るが、画面上部にエラーが出力されてしまう
|
103
|
+
```
|
104
|
+
<?php if(isset($errors)): ?>
|
105
|
+
<div class="mb-3">
|
106
|
+
<label>氏名</label><label class="kome">*</label><br>
|
107
|
+
<div class="vali"><?php echo $errors['name']; ?></div>
|
108
|
+
<input type="text" id="f-name" name="name" value="" placeholder="山田太郎">
|
109
|
+
</div>
|
110
|
+
<div class="mb-3">
|
111
|
+
<label>フリガナ</label><label class="kome">*</label><br>
|
112
|
+
<div class="vali"><?php echo $errors['kana']; ?></div>
|
113
|
+
<input type="text" id="f-kana" name="kana" value="" placeholder="ヤマダタロウ">
|
114
|
+
</div>
|
115
|
+
<div class="mb-3">
|
116
|
+
<label>電話番号</label><label class="kome">*</label><br>
|
117
|
+
<div class="vali"><?php echo $errors['tel']; ?></div>
|
118
|
+
<input type="text" id="f-tel" name="tel" value="" placeholder="09012345678">
|
119
|
+
</div>
|
120
|
+
<div class="mb-3">
|
121
|
+
<label>メールアドレス</label><label class="kome">*</label><br>
|
122
|
+
<div class="vali"><?php echo $errors['email']; ?></div>
|
123
|
+
<input type="text" id="f-email" name="email" value="" placeholder="test@test.co.jp">
|
124
|
+
</div>
|
125
|
+
<div class="f-title f-bottom">
|
126
|
+
<h3>お問い合わせ内容をご記入ください<label class="kome">*</label></h3>
|
127
|
+
</div>
|
128
|
+
<div class="vali"><?php echo $errors['contact']; ?></div>
|
129
|
+
<div class="mb-3">
|
130
|
+
<textarea id="contact" name="contact" rows="7"></textarea>
|
131
|
+
</div>
|
132
|
+
<input type="hidden" name="csrf_token" value="<?php echo setToken(); ?>">
|
133
|
+
<button type="submit" class="btn" name="btn_confirm">送信</button>
|
134
|
+
<?php endif; ?>
|
135
|
+
```
|
136
|
+
|
137
|
+
```
|
138
|
+
<?php
|
139
|
+
|
140
|
+
$errors = [];
|
141
|
+
|
142
|
+
// 名前の空欄チェック
|
143
|
+
if(empty($_POST['name']) || mb_strlen($_POST['name']) > 10) {
|
144
|
+
$errors['name'] = "名前は必須です。10文字以内で入力してください。";
|
145
|
+
}
|
146
|
+
// $_SESSION['name'] = htmlspecialchars($_POST['name'], ENT_QUOTES, "UTF-8");
|
147
|
+
// フリガナの空欄チェック
|
148
|
+
if(empty($_POST['kana']) || mb_strlen($_POST['kana']) > 10) {
|
149
|
+
$errors['kana'] = "フリガナは必須です。フリガナは10文字以内で入力してください";
|
150
|
+
}
|
151
|
+
|
152
|
+
// 電話番号のチェック
|
153
|
+
// if(isset($_POST['email'])) {
|
154
|
+
if(!preg_match("/^[0-9]+$/", $_POST['tel'])) {
|
155
|
+
$errors['tel'] = "電話番号は0-9までの数字を入力してください";
|
156
|
+
}
|
157
|
+
// }
|
158
|
+
|
159
|
+
// 正しいEmailの形式化どうか
|
160
|
+
// if(isset($_POST['email'])) {
|
161
|
+
if(!filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) {
|
162
|
+
$errors['email'] = "正しいメールアドレスを指定してください";
|
163
|
+
}
|
164
|
+
// }
|
165
|
+
|
166
|
+
// お問い合わせ内容の空欄チェック
|
167
|
+
if(empty($_POST['contact'])) {
|
168
|
+
$errors['contact'] = "お問い合わせ内容は必須です";
|
169
|
+
}
|
170
|
+
?>
|
171
|
+
```
|
172
|
+

|
173
|
+
|
174
|
+
ただ、 // if(isset($_POST['email'])) {のコメントアウトを外すと、画面上部にエラ〜メッセージは出力されないが、バリデーションメッセージが無効になってしまう。
|
175
|
+

|
2
追記
title
CHANGED
File without changes
|
body
CHANGED
@@ -88,4 +88,12 @@
|
|
88
88
|
##試したこと
|
89
89
|
Notice: Undefined indexなので、バリデーションする前にif(isset($_POST['tel']))をつけたが解決できない。
|
90
90
|
|
91
|
-
お願いいたします。
|
91
|
+
お願いいたします。
|
92
|
+
|
93
|
+
追記:
|
94
|
+
問題のcontact.phpに以下を追記しましたが、バリデーションのメッセージが表示されない。
|
95
|
+
```
|
96
|
+
<?php if(isset($_POST['tel'])): ?>
|
97
|
+
<div class="vali"><?php echo $errors['tel']; ?></div>
|
98
|
+
<?php endif; ?>
|
99
|
+
```
|
1
追記
title
CHANGED
File without changes
|
body
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|

|
4
4
|
|
5
5
|
##該当のソースコード
|
6
|
-
|
6
|
+
contact.php
|
7
7
|
```
|
8
8
|
<form action="confirm.php" method="POST">
|
9
9
|
<div class="mb-3">
|
@@ -73,7 +73,18 @@
|
|
73
73
|
}
|
74
74
|
?>
|
75
75
|
```
|
76
|
+
contact.phpの100行目
|
77
|
+
```
|
78
|
+
<div class="vali"><?php echo $errors['tel']; ?></div>
|
79
|
+
```
|
76
80
|
|
81
|
+
contact.phpの105行目
|
82
|
+
```
|
83
|
+
<div class="vali"><?php echo $errors['email']; ?></div>
|
84
|
+
|
85
|
+
```
|
86
|
+
|
87
|
+
|
77
88
|
##試したこと
|
78
89
|
Notice: Undefined indexなので、バリデーションする前にif(isset($_POST['tel']))をつけたが解決できない。
|
79
90
|
|