回答編集履歴
3
見直し
test
CHANGED
@@ -9,6 +9,10 @@
|
|
9
9
|
where句を構成するのに多少冗長になっても、
|
10
10
|
|
11
11
|
(そのままSQL文に織り込まない)数字や文字列など単純なデータにするべきです。
|
12
|
+
|
13
|
+
そして、受信した`$_POST`や`$_GET`に望まない不正なデータが含まれていないか検証する必要もあります。
|
14
|
+
|
15
|
+
(その検証をラクにする一つの手段として、`filter_input()`などがあります。)
|
12
16
|
|
13
17
|
|
14
18
|
|
@@ -28,7 +32,11 @@
|
|
28
32
|
|
29
33
|
それと、`$_POST['~']`とか`$_REQUEST['~']`とか
|
30
34
|
|
31
|
-
参照するデータが存在しない場合はちょっとしたエラーメッセージが
|
35
|
+
参照するデータが存在しない場合はちょっとしたエラーメッセージが
|
36
|
+
|
37
|
+
Notice: Undefined index: なんとか in 行番号
|
38
|
+
|
39
|
+
などとログに残るので、
|
32
40
|
|
33
41
|
`filter_input()`や`filter_input_array()`にしなさいって言われるぞ。
|
34
42
|
|
2
加筆修正
test
CHANGED
@@ -31,3 +31,13 @@
|
|
31
31
|
参照するデータが存在しない場合はちょっとしたエラーメッセージがログに残るので、
|
32
32
|
|
33
33
|
`filter_input()`や`filter_input_array()`にしなさいって言われるぞ。
|
34
|
+
|
35
|
+
|
36
|
+
|
37
|
+
さらに、
|
38
|
+
|
39
|
+
いちいち`if (strlen($where) > 0) {`をつけると無駄にソースコードが長くなるので、
|
40
|
+
|
41
|
+
私は配列に`$where_terms[] = 'a = 1';`みたいなのを積み上げておいて、
|
42
|
+
|
43
|
+
最後に`$where = 'WHERE ' . implode(' AND ', $where_terms);`みたいなことをするよ。
|
1
加筆修正
test
CHANGED
@@ -23,3 +23,11 @@
|
|
23
23
|
せめて`urlencode()`でエンコードしますよ普通は。
|
24
24
|
|
25
25
|
`&`や`=`や`?`などurlに直接書いちゃいけない文字を置き換えてくれます。
|
26
|
+
|
27
|
+
|
28
|
+
|
29
|
+
それと、`$_POST['~']`とか`$_REQUEST['~']`とか
|
30
|
+
|
31
|
+
参照するデータが存在しない場合はちょっとしたエラーメッセージがログに残るので、
|
32
|
+
|
33
|
+
`filter_input()`や`filter_input_array()`にしなさいって言われるぞ。
|