filter_input()
フィルター・インプット(Web開発とセキュリティ)
意味 外部入力の検証と浄化
filter_input()とは?
filter_input()は、PHPで外部からの入力(GET、POST、COOKIEなど)を検証し、浄化するための関数です。この関数を使うことで、ユーザーからの入力を安全に処理し、悪意のあるデータを防ぐことができます。
filter_input()の具体的な使い方
GET、POST、COOKIEからの入力検証
// フォームが送信されたと仮定
$email = filter_input(INPUT_POST, 'email', FILTER_VALIDATE_EMAIL);
$age = filter_input(INPUT_POST, 'age', FILTER_VALIDATE_INT);
$name = filter_input(INPUT_POST, 'name', FILTER_SANITIZE_STRING);
// GETパラメータの検証
$page = filter_input(INPUT_GET, 'page', FILTER_VALIDATE_INT);
// クッキーの検証
$user_id = filter_input(INPUT_COOKIE, 'user_id', FILTER_VALIDATE_INT);
echo "検証結果:\n";
echo "Email: " . ($email ? $email : "無効") . "\n";
echo "年齢: " . ($age !== false ? $age : "無効") . "\n";
echo "名前: {$name}\n";
echo "ページ: " . ($page !== false ? $page : "無効") . "\n";
echo "ユーザーID: " . ($user_id !== false ? $user_id : "無効") . "\n";
👇出力結果
検証結果:
Email: [email protected]
年齢: 25
名前: John Doe
ページ: 1
ユーザーID: 12345
この例では、filter_input()関数を使用してPOST、GET、COOKIEからの入力を安全に取得し検証しています。メールアドレス、整数、文字列など、異なるタイプのデータに対して適切なフィルタを適用しています。これにより、外部からの入力を安全に処理し、不正なデータの混入を防ぐことができます。
複数の入力フィールドの一括処理
// フォームが送信されたと仮定
$filters = [
'username' => FILTER_SANITIZE_STRING,
'email' => FILTER_VALIDATE_EMAIL,
'age' => [
'filter' => FILTER_VALIDATE_INT,
'options' => ['min_range' => 1, 'max_range' => 120]
],
'url' => FILTER_VALIDATE_URL
];
$inputs = filter_input_array(INPUT_POST, $filters);
foreach ($inputs as $field => $value) {
if ($value === false || $value === null) {
echo "{$field}: 無効な入力\n";
} else {
echo "{$field}: {$value}\n";
}
}
👇出力結果
username: JohnDoe
email: [email protected]
age: 30
url: https://www.example.com
この例では、filter_input_array()関数を使用して複数の入力フィールドを一度に処理しています。ユーザー名、メールアドレス、年齢、URLに対して、それぞれ適切なフィルタを適用しています。年齢には追加のオプションとして範囲チェックも行っています。この方法は、多くの入力フィールドを持つフォームを処理する際に特に便利です。
filter_input()に関するよくある質問
PHPのfilter_input()についても学べる書籍の紹介
「プログラミング単語帳」を使って、プログラミングの単語を英単語のように学習してみませんか?
プログラミング単語帳には、PHPのfilter_input()やsession_start()、password_hash()、strip_tags()、などのような実務でよく使われる単語が数百以上収録されています。
この書籍には、プログラミングの単語の意味や読み方、単語の使い方がわかる例文などが掲載されており、いつでもどこでもプログラミングの学習ができます。
よく使われる単語にだけ絞って学習することができるので、効率的にプログラミングが学習できます。
HTML編、CSS編、JavaScript編、PHP編、Ruby編、その他単語編の6シリーズ分が公式ストアにて販売中です。気になった方はぜひ購入してみてください。
PHPを学べる「プログラミング単語帳」アプリ
プログラミング単語帳がアプリになりました!PHPはもちろん、10種類のプログラミング言語の中から、よく使われる単語をスマホで学習できます。
収録単語は2,000単語以上!
現在は、HTML、CSS、JavaScirpt、PHP、Laravel、Ruby、Python、MySQL、Linux、など10カテゴリーの単語帳が1つのアプリに収録されています。
いつでも、どこでも、隙間時間を有効活用して、プログラミングを効率的に学べるので、ぜひダウンロードしてみてください。
2024年7月アップデート情報:「Laravel」カテゴリーが追加されましました!
2024年8月アップデート情報:「MySQL」「Linux」カテゴリーが追加されましました!