回答編集履歴

2

加筆修正

2020/11/30 01:17

投稿

退会済みユーザー
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

加筆修正

2020/11/30 01:16

投稿

退会済みユーザー
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