teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

追記

2016/08/29 05:13

投稿

yambejp
yambejp

スコア117921

answer CHANGED
@@ -4,4 +4,32 @@
4
4
  - 一部で良い場合設定されていない他の値のデフォルト値はどうするのか
5
5
 
6
6
  ちなみに、GETで受けた値を直接urlにつなげるのはNGです
7
- 必ずエンコードしましょう
7
+ 必ずエンコードしましょう
8
+
9
+ # 追記
10
+ 仮にHTML側のフォームが
11
+
12
+ ```HTML
13
+ <form method="geT">
14
+ keyword:<input type="text" name="keyword" value=""><br>
15
+ budget:<input type="text" name="budget" value=""><br>
16
+ food_category:<input type="text" name="food_category" value=""><br>
17
+ <input type="submit" value="search">
18
+ </form>
19
+ ```
20
+ だった場合、keyword,budget,food_categoryは空文字でデータが渡るので
21
+ issetのチェックでは不十分です。
22
+ 以下のように、中身までチェックした上で分岐を考えてください
23
+
24
+ ```PHP
25
+ $keyword=filter_input(INPUT_GET,"keyword",FILTER_DEFAULT,array("option"=>array("default"=>"")));
26
+ $budget=filter_input(INPUT_GET,"budget",FILTER_DEFAULT,array("option"=>array("default"=>"")));
27
+ $food_category=filter_input(INPUT_GET,"food_category",FILTER_DEFAULT,array("option"=>array("default"=>"")));
28
+
29
+ if(!in_array("",[$keyword,$budget,$food_category])){
30
+ print "ok";
31
+ }else{
32
+ print "ng";
33
+ }
34
+
35
+ ```