質問編集履歴
3
本文の文法と問題点を修正
title
CHANGED
@@ -1,1 +1,1 @@
|
|
1
|
-
|
1
|
+
Webサイトのお問い合わせフォームにバリデーションをつけたい。
|
body
CHANGED
@@ -1,25 +1,9 @@
|
|
1
1
|
### 前提・実現したいこと
|
2
2
|
webサイトのお問い合わせフォームにバリデーションをつけたい。
|
3
|
-
最終的には、
|
4
|
-
|
3
|
+
フォームに入力(index.php)⇒「確認ページ」(confirm.php)⇒「サンクスページ」⇒投稿者に確認メールを自動送信する、という流れまでphpが正常に動作するのですが、
|
5
|
-
のサイトにあるように
|
6
|
-
・変数のホワイトリスト化
|
7
|
-
・サニタイズ(サニタイジング)
|
8
|
-
・クロスサイトスクリプティングの実験
|
9
|
-
・バリデート(バリデーション)
|
10
|
-
・入力必須チェック
|
11
|
-
・正規表現での形式チェック
|
12
|
-
・エラー時の初期表示をセット
|
13
|
-
・ヌルバイト除去
|
14
|
-
|
4
|
+
現在の設定だとバリデーションの部分のエラー表示が「確認ページ」に出るので、
|
5
|
+
(index.php)のフォーム入力欄の上にエラー表示を出したい。
|
15
6
|
|
16
|
-
### 発生している問題・エラーメッセージ
|
17
|
-
|
18
|
-
```
|
19
|
-
フォームに入力(index.php)⇒「確認ページ」(confirm.php)⇒「サンクスページ」⇒投稿者に確認メールを自動送信する
|
20
|
-
という流れまではphpが動作するのですが、バリデーションの部分が作れず、困っています。
|
21
|
-
```
|
22
|
-
|
23
7
|
### 該当のソースコード(フォームの入力ページ:index.php)
|
24
8
|
|
25
9
|
```php
|
@@ -61,6 +45,19 @@
|
|
61
45
|
return htmlentities($str, ENT_QUOTES, "UTF-8");
|
62
46
|
}
|
63
47
|
|
48
|
+
$page_error = ""; // エラーメッセージ
|
49
|
+
// エラーチェック
|
50
|
+
if (isset($_POST["submit"])) {
|
51
|
+
if ($email == "") {
|
52
|
+
$page_error = "メールアドレスを入力してください\n";
|
53
|
+
}
|
54
|
+
if ($page_error == "") {
|
55
|
+
if (!preg_match('/^([a-zA-Z0-9.\_\-+?\#\&\%])*@([a-zA-Z0-9\_\-])+([a-zA-Z0-9.\_\-]+)+$/', $email)) {
|
56
|
+
$page_error = "メールアドレスを正しく入力してください\n";
|
57
|
+
}
|
58
|
+
}
|
59
|
+
}
|
60
|
+
|
64
61
|
// フォームのボタンが押されたら
|
65
62
|
if ($_SERVER["REQUEST_METHOD"] == "POST") {
|
66
63
|
// フォームから送信されたデータを各変数に格納
|
@@ -132,7 +129,7 @@
|
|
132
129
|
<p class="kakunin_title">お問い合わせ内容がよろしければ、「送信する」ボタンを押して下さい。</p>
|
133
130
|
<div>
|
134
131
|
<div><label>お名前</label><p><?php echo he($name); ?></p></div>
|
135
|
-
<div><label>メールアドレス</label><
|
132
|
+
<div><label>メールアドレス</label><span class="error_text"><?php echo he($page_error); ?></span></div>
|
136
133
|
<div><label>件名</label><p><?php echo he($kenmei); ?></p></div>
|
137
134
|
<div><label>お問い合わせ内容</label><p><?php echo nl2br(he($message)); ?></p></div>
|
138
135
|
</div>
|
@@ -145,7 +142,7 @@
|
|
145
142
|
```
|
146
143
|
|
147
144
|
### 試したこと
|
148
|
-
【バリデーションのPHP部分】
|
145
|
+
**【バリデーションのPHP部分】**
|
149
146
|
$page_error = ""; // エラーメッセージ
|
150
147
|
// エラーチェック
|
151
148
|
if (isset($_POST["submit"])) {
|
@@ -158,8 +155,8 @@
|
|
158
155
|
}
|
159
156
|
}
|
160
157
|
}
|
161
|
-
【HTMLで呼び出す部分】
|
158
|
+
**【HTMLで呼び出す部分】**
|
162
|
-
<?php echo he($page_error); ?>
|
159
|
+
<span class="error_text"><?php echo he($page_error); ?></span>
|
163
|
-
|
160
|
+
|
164
161
|
↑といった内容を組み込みたいです。
|
165
162
|
※Jquery Validation Pluginも試してみましたが動作しませんでした。
|
2
「試したこと」の、文法の修正2
title
CHANGED
File without changes
|
body
CHANGED
@@ -145,17 +145,21 @@
|
|
145
145
|
```
|
146
146
|
|
147
147
|
### 試したこと
|
148
|
-
|
148
|
+
【バリデーションのPHP部分】
|
149
|
-
|
149
|
+
$page_error = ""; // エラーメッセージ
|
150
|
-
|
151
150
|
// エラーチェック
|
151
|
+
if (isset($_POST["submit"])) {
|
152
152
|
if ($email == "") {
|
153
|
-
$
|
153
|
+
$page_error = "メールアドレスを入力してください\n";
|
154
154
|
}
|
155
|
-
if ($
|
155
|
+
if ($page_error == "") {
|
156
156
|
if (!preg_match('/^([a-zA-Z0-9.\_\-+?\#\&\%])*@([a-zA-Z0-9\_\-])+([a-zA-Z0-9.\_\-]+)+$/', $email)) {
|
157
|
-
$
|
157
|
+
$page_error = "メールアドレスを正しく入力してください\n";
|
158
158
|
}
|
159
159
|
}
|
160
|
+
}
|
161
|
+
【HTMLで呼び出す部分】
|
162
|
+
<?php echo he($page_error); ?>
|
160
163
|
-----------------------------------------------------
|
161
|
-
↑といった内容を組み込みたい
|
164
|
+
↑といった内容を組み込みたいです。
|
165
|
+
※Jquery Validation Pluginも試してみましたが動作しませんでした。
|
1
「試したこと」の、文法の修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -153,8 +153,8 @@
|
|
153
153
|
$email_error = "メールアドレスを入力してください\n";
|
154
154
|
}
|
155
155
|
if ($email_error == "") {
|
156
|
-
if (!preg_match('/^([a-zA-Z0-9.\_\-+?\#\&\%])*@([a-zA-Z0-9\_\-])+([a-zA-Z0-9.\_\-]+)+$/', $
|
156
|
+
if (!preg_match('/^([a-zA-Z0-9.\_\-+?\#\&\%])*@([a-zA-Z0-9\_\-])+([a-zA-Z0-9.\_\-]+)+$/', $email)) {
|
157
|
-
$
|
157
|
+
$email_error = "メールアドレスを正しく入力してください\n";
|
158
158
|
}
|
159
159
|
}
|
160
160
|
-----------------------------------------------------
|