回答編集履歴
2
加筆修正
test
CHANGED
@@ -83,3 +83,7 @@
|
|
83
83
|
filter_input()を駆使してもいいかもしれません。場合によりますが。
|
84
84
|
|
85
85
|
メールアドレスが送信不能なデタラメじゃないことを検査したり。
|
86
|
+
|
87
|
+
[PHP: filter_input - Manual](https://www.php.net/manual/ja/function.filter-input.php)
|
88
|
+
|
89
|
+
配列パラメータが配列として受け取れるようにもできたりするので、ぜひご検討を。
|
1
加筆修正
test
CHANGED
@@ -6,7 +6,7 @@
|
|
6
6
|
|
7
7
|
たまたま使う変数名で偶然外部からいたずらされたら、
|
8
8
|
|
9
|
-
変数を初期化しないで使ったりすると意図しない場面に外部からデータが流し込まれて
|
9
|
+
変数を初期化しないで使ったりすると意図しない場面に外部からデータが流し込まれて詰みます。
|
10
10
|
|
11
11
|
|
12
12
|
|
@@ -16,21 +16,21 @@
|
|
16
16
|
|
17
17
|
<?php
|
18
18
|
|
19
|
-
$value = 1; // 1以外のデータのときの挙動も試してね
|
19
|
+
$value = 1; // 1以外のデータのときの挙動も試してね
|
20
20
|
|
21
|
-
if ($value === 1) {
|
21
|
+
if ($value === 1) {
|
22
22
|
|
23
23
|
?><p>1でした</p>
|
24
24
|
|
25
25
|
<?php
|
26
26
|
|
27
|
-
} else {
|
27
|
+
} else {
|
28
28
|
|
29
29
|
?><p>1じゃなかった</p>
|
30
30
|
|
31
31
|
<?php
|
32
32
|
|
33
|
-
}
|
33
|
+
}
|
34
34
|
|
35
35
|
```
|
36
36
|
|
@@ -40,15 +40,43 @@
|
|
40
40
|
|
41
41
|
あとエラーメッセージの出し方の工夫として、
|
42
42
|
|
43
|
-
`$err_msg[]`なんて配列を初期化しておいて、
|
43
|
+
`$err_msg = [];`なんて配列を初期化しておいて、
|
44
44
|
|
45
45
|
フォームの条件を検査してエラーメッセージを配列の最後に足していく
|
46
46
|
|
47
|
-
`$err_msg[] = '
|
47
|
+
`$err_msg[] = 'aでエラーがありました。';`
|
48
48
|
|
49
|
+
`$err_msg[] = 'bでエラーがありました。';`
|
50
|
+
|
51
|
+
で配列のデータ数をカウントすれば`if (count($err_msg) === 0) {`
|
52
|
+
|
49
|
-
|
53
|
+
エラーゼロかどうか分かる、
|
50
54
|
|
51
55
|
みたいなことをよくやります。
|
56
|
+
|
57
|
+
```php
|
58
|
+
|
59
|
+
if (count($err_msg) > 0) {
|
60
|
+
|
61
|
+
?><p><?php
|
62
|
+
|
63
|
+
foreach ($err_msg as $msg) {
|
64
|
+
|
65
|
+
echo htmlspecialchars($msg, ENT_QUOTES, "UTF-8") . "<br>" . PHP_EOL;
|
66
|
+
|
67
|
+
}
|
68
|
+
|
69
|
+
?></p>
|
70
|
+
|
71
|
+
<?php
|
72
|
+
|
73
|
+
}
|
74
|
+
|
75
|
+
```
|
76
|
+
|
77
|
+
こんな書き方なら、エラーメッセージがない時にはp要素すら出力しないし、
|
78
|
+
|
79
|
+
エラーメッセージごとにbr要素で改行してくれることを期待するわけで。
|
52
80
|
|
53
81
|
|
54
82
|
|