回答編集履歴
3
edit
answer
CHANGED
@@ -38,9 +38,15 @@
|
|
38
38
|
返り値
|
39
39
|
var が存在し、かつ**その値が空や0でなければ**、 つまり boolean のコンテキストで false と見なされる場合、false を返します。
|
40
40
|
|
41
|
-
つまり`empty($_POST['gender'])`は「男」を選択した「0」のときは必ずempty()
|
41
|
+
つまり`empty($_POST['gender'])`は「男」を選択した「0」のときは必ずempty()はtrueが返っています。
|
42
42
|
emptyを使う際の注意点です。
|
43
43
|
0を「空である」と判定します。
|
44
|
+
```php
|
45
|
+
var_dump(empty(0)); //true
|
46
|
+
var_dump(empty('0')); //true
|
47
|
+
var_dump(empty(1)); //false
|
48
|
+
var_dump(empty('1')); //fals
|
49
|
+
```
|
44
50
|
|
45
51
|
ユーザーからの入力は何が来るか分からない…と言う点でempty()でチェックするのは悪手だと考えられます。
|
46
52
|
ブラウザのデベロッパーツールから書き換えればhiddenからだって0を送れます。prefectureのほうも改ざん可能です。
|
2
edit
answer
CHANGED
@@ -38,9 +38,9 @@
|
|
38
38
|
返り値
|
39
39
|
var が存在し、かつ**その値が空や0でなければ**、 つまり boolean のコンテキストで false と見なされる場合、false を返します。
|
40
40
|
|
41
|
-
つまり`empty($_POST['gender'])`は「男」を選択した「0」のときは必ず
|
41
|
+
つまり`empty($_POST['gender'])`は「男」を選択した「0」のときは必ずempty()であると判定されます。
|
42
42
|
emptyを使う際の注意点です。
|
43
|
-
0を
|
43
|
+
0を「空である」と判定します。
|
44
44
|
|
45
45
|
ユーザーからの入力は何が来るか分からない…と言う点でempty()でチェックするのは悪手だと考えられます。
|
46
46
|
ブラウザのデベロッパーツールから書き換えればhiddenからだって0を送れます。prefectureのほうも改ざん可能です。
|
1
edit
answer
CHANGED
@@ -42,7 +42,9 @@
|
|
42
42
|
emptyを使う際の注意点です。
|
43
43
|
0をfalseと判定します。
|
44
44
|
|
45
|
-
ユーザーからの入力は何が来るか分からない…と言う点でempty()でチェックするのは悪手だと考えられます。
|
45
|
+
ユーザーからの入力は何が来るか分からない…と言う点でempty()でチェックするのは悪手だと考えられます。
|
46
|
+
ブラウザのデベロッパーツールから書き換えればhiddenからだって0を送れます。prefectureのほうも改ざん可能です。
|
47
|
+
「keyが存在したら」とう観点ならisset()でも良いのですけど、
|
46
48
|
prefectureの方もですが、[filter_input()](https://www.php.net/manual/ja/function.filter-input.php)の利用を強くすすめます。
|
47
49
|
|
48
50
|
```php
|
@@ -67,8 +69,17 @@
|
|
67
69
|
}
|
68
70
|
```
|
69
71
|
|
72
|
+
蛇足1:
|
73
|
+
流れは入力→確認画面→完了でしょうか。
|
74
|
+
hiddenに保持した場合、先に書いたようにブラウザのデベロッパーツールから値や内容を改ざんできるので、
|
75
|
+
セッションに保持したほうが良いです。
|
76
|
+
なんでもかんでも送れてはいけないので、バリデーションも入れましょう。
|
70
77
|
|
71
|
-
蛇足:
|
78
|
+
蛇足2:
|
79
|
+
XSSが可能な作りになっています。
|
80
|
+
「そもそもXSSとは」というところを調べたうえで適切に対応してください。
|
81
|
+
|
82
|
+
蛇足3:
|
72
83
|
性別の選択って結構センシティブなものなので、
|
73
84
|
学習中かもしれませんが、今後のことも加味してある程度気にされたほうが良いです。
|
74
85
|
[ダイバーシティ時代に「性別を選択する」ということ](https://about.yahoo.co.jp/info/blog/20180613/diversity.html)
|