【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= の様に未指定であったりすると 変数 $idfalse で返されます。
これでは不都合があったりしますので、値の規定値、最小値、最大値の指定を filter_input 関数の第4引数に配列で指定します。

指定された min_range指定値と max_range指定値の範囲外の場合は default指定値が返されます。

楽天市場


■関連記事
【PHP】可変変数と可変クラスの使い方について
【PHP】配列の中に参照変数を持つことで別々の変数の要素を操作する
【PHP】配列の代入はクローンコピーになる
【PHP】連想配列の様な「stdClass」の使い方について
【PHP】POSTやGETなどのスーパーグローバル変数のアクセスはfilter_inputを使う方が安全らしい
【PHP】array_keys:指定キー検索で見つからない場合の結果は何が返る

デル株式会社
コメント(0)