【PHP】POSTやGETなどのスーパーグローバル変数のアクセスはfilter_inputを使う方が安全らしい
POSTやGETなどのスーパーグローバル変数へのアクセスは直接以下の様にすることで行えます。
この例では、$_GET変数から id という引数を取得します。
これを filter_input 関数を使うと1行ですっきりします。
但し、これだと引数 id が全く指定されない場合は、変数 $id の中身がNULLになってしまいます。 そこで filter_input 関数の第3引数に FILTER_SANITIZE_STRING を指定すれば id を文字列として 取得できます。
引数 id を整数値として扱いたい場合は、第3引数に FILTER_VALIDATE_INT を指定します。
この場合でも、id=aaa の文字列指定であったり、id= の様に未指定であったりすると 変数 $id が false で返されます。
これでは不都合があったりしますので、値の規定値、最小値、最大値の指定を filter_input 関数の第4引数に配列で指定します。
指定された min_range指定値と max_range指定値の範囲外の場合は default指定値が返されます。
■関連記事
⇒【PHP】可変変数と可変クラスの使い方について
⇒【PHP】配列の中に参照変数を持つことで別々の変数の要素を操作する
⇒【PHP】配列の代入はクローンコピーになる
⇒【PHP】連想配列の様な「stdClass」の使い方について
⇒【PHP】POSTやGETなどのスーパーグローバル変数のアクセスはfilter_inputを使う方が安全らしい
⇒【PHP】array_keys:指定キー検索で見つからない場合の結果は何が返る
この例では、$_GET変数から id という引数を取得します。
これを filter_input 関数を使うと1行ですっきりします。
但し、これだと引数 id が全く指定されない場合は、変数 $id の中身がNULLになってしまいます。 そこで filter_input 関数の第3引数に FILTER_SANITIZE_STRING を指定すれば id を文字列として 取得できます。
引数 id を整数値として扱いたい場合は、第3引数に FILTER_VALIDATE_INT を指定します。
この場合でも、id=aaa の文字列指定であったり、id= の様に未指定であったりすると 変数 $id が false で返されます。
これでは不都合があったりしますので、値の規定値、最小値、最大値の指定を filter_input 関数の第4引数に配列で指定します。
指定された min_range指定値と max_range指定値の範囲外の場合は default指定値が返されます。
■関連記事
⇒【PHP】可変変数と可変クラスの使い方について
⇒【PHP】配列の中に参照変数を持つことで別々の変数の要素を操作する
⇒【PHP】配列の代入はクローンコピーになる
⇒【PHP】連想配列の様な「stdClass」の使い方について
⇒【PHP】POSTやGETなどのスーパーグローバル変数のアクセスはfilter_inputを使う方が安全らしい
⇒【PHP】array_keys:指定キー検索で見つからない場合の結果は何が返る
コメント