filter_input
formの値の受け取りは直に代入するより、filter_inputを使う。
配列も対応!filter_input関数の使い方
何もしない場合
filter_input(INPUT_POST, '');
filter_input(INPUT_POST, 'aaaa');
配列を受け取る場合
filter_input(INPUT_POST, 'bbbb', FILTER_DEFAULT, FILTER_REQUIRE_ARRAY);
文字列をエスケープしたい場合
filter_input(INPUT_POST, 'cccc', FILTER_SANITIZE_STRING);
PHP8.1から非推奨になったため、
filter_input(INPUT_POST, 'name', FILTER_SANITIZE_SPECIAL_CHARS);
textareaのnl2brが効かなくなるので、改行があるものは別の方法で取得。
| ID | 説明 |
|---|---|
| FILTER_SANITIZE_STRING | タグを取り除く。オプションで、 特殊文字を取り除いたりエンコードしたりする |
| FILTER_SANITIZE_SPECIAL_CHARS | ‘”<>& および ASCII 値が 32 未満の文字を HTML エスケープする。オプションで、 特殊文字を取り除いたりエンコードしたりする |
| FILTER_SANITIZE_FULL_SPECIAL_CHARS | htmlspecialchars() に ENT_QUOTES を指定してコールするのと同じ |
| FILTER_VALIDATE_EMAIL | emailの検証 存在しない場合は NULL 誤ったメールアドレスが入力された場合は、FALSE 正しい書式の場合、変数の値 |