回答編集履歴
3
edit
test
CHANGED
@@ -78,11 +78,23 @@
|
|
78
78
|
|
79
79
|
|
80
80
|
|
81
|
-
つまり`empty($_POST['gender'])`は「男」を選択した「0」のときは必ずempty()
|
81
|
+
つまり`empty($_POST['gender'])`は「男」を選択した「0」のときは必ずempty()はtrueが返っています。
|
82
82
|
|
83
83
|
emptyを使う際の注意点です。
|
84
84
|
|
85
85
|
0を「空である」と判定します。
|
86
|
+
|
87
|
+
```php
|
88
|
+
|
89
|
+
var_dump(empty(0)); //true
|
90
|
+
|
91
|
+
var_dump(empty('0')); //true
|
92
|
+
|
93
|
+
var_dump(empty(1)); //false
|
94
|
+
|
95
|
+
var_dump(empty('1')); //fals
|
96
|
+
|
97
|
+
```
|
86
98
|
|
87
99
|
|
88
100
|
|
2
edit
test
CHANGED
@@ -78,11 +78,11 @@
|
|
78
78
|
|
79
79
|
|
80
80
|
|
81
|
-
つまり`empty($_POST['gender'])`は「男」を選択した「0」のときは必ず
|
81
|
+
つまり`empty($_POST['gender'])`は「男」を選択した「0」のときは必ずempty()であると判定されます。
|
82
82
|
|
83
83
|
emptyを使う際の注意点です。
|
84
84
|
|
85
|
-
0を
|
85
|
+
0を「空である」と判定します。
|
86
86
|
|
87
87
|
|
88
88
|
|
1
edit
test
CHANGED
@@ -86,7 +86,11 @@
|
|
86
86
|
|
87
87
|
|
88
88
|
|
89
|
-
ユーザーからの入力は何が来るか分からない…と言う点でempty()でチェックするのは悪手だと考えられます。
|
89
|
+
ユーザーからの入力は何が来るか分からない…と言う点でempty()でチェックするのは悪手だと考えられます。
|
90
|
+
|
91
|
+
ブラウザのデベロッパーツールから書き換えればhiddenからだって0を送れます。prefectureのほうも改ざん可能です。
|
92
|
+
|
93
|
+
「keyが存在したら」とう観点ならisset()でも良いのですけど、
|
90
94
|
|
91
95
|
prefectureの方もですが、[filter_input()](https://www.php.net/manual/ja/function.filter-input.php)の利用を強くすすめます。
|
92
96
|
|
@@ -136,9 +140,27 @@
|
|
136
140
|
|
137
141
|
|
138
142
|
|
143
|
+
蛇足1:
|
144
|
+
|
145
|
+
流れは入力→確認画面→完了でしょうか。
|
146
|
+
|
147
|
+
hiddenに保持した場合、先に書いたようにブラウザのデベロッパーツールから値や内容を改ざんできるので、
|
148
|
+
|
149
|
+
セッションに保持したほうが良いです。
|
150
|
+
|
151
|
+
なんでもかんでも送れてはいけないので、バリデーションも入れましょう。
|
139
152
|
|
140
153
|
|
154
|
+
|
141
|
-
蛇足:
|
155
|
+
蛇足2:
|
156
|
+
|
157
|
+
XSSが可能な作りになっています。
|
158
|
+
|
159
|
+
「そもそもXSSとは」というところを調べたうえで適切に対応してください。
|
160
|
+
|
161
|
+
|
162
|
+
|
163
|
+
蛇足3:
|
142
164
|
|
143
165
|
性別の選択って結構センシティブなものなので、
|
144
166
|
|