現在の位置: ホーム> 最新記事一覧> PHP フォーム検証の実践的なヒント: filter_input 関数を使用してユーザー入力を効率的に検証する

PHP フォーム検証の実践的なヒント: filter_input 関数を使用してユーザー入力を効率的に検証する

M66 2025-11-03

導入

Web アプリケーションを開発する場合、フォームはユーザーと対話するための重要な手段です。ユーザー入力を適切に検証することは、データのセキュリティと整合性を確保するための重要なステップです。 PHP は、ユーザー入力の検証とフィルタリングをより簡単かつ効率的に行うために、filter_input 関数を提供します。この記事では、filter_input 関数を使用してユーザー入力を検証する方法を紹介し、実用的なコード例を示します。

filter_input関数の基本的な使い方

filter_input 関数は、ユーザー入力のフィルターと検証に使用され、入力タイプ (ソース)、入力名、フィルター タイプの 3 つの主要なパラメーターを受け入れます。基本的な例を次に示します。

 $input = filter_input(INPUT_POST, 'email', FILTER_VALIDATE_EMAIL);

if ($input) {
    echo '有効な電子メールアドレス。';
} else {
    echo '请输入一个有効な電子メールアドレス。';
}

この例では、filter_input 関数を使用して、POST メソッドを通じて送信された電子メール フィールドを検証します。 FILTER_VALIDATE_EMAIL は、電子メール形式が有効かどうかを確認するために使用されます。有効な場合は「有効な電子メール アドレス」が出力され、そうでない場合は正しい電子メール アドレスを入力するよう求められます。

一般的なフィルターの種類

filter_input は、さまざまなタイプの入力を検証するための複数のフィルター タイプをサポートしています。一般的に使用されるフィルターは次のとおりです。

メールの確認

$email = filter_input(INPUT_POST, 'email', FILTER_VALIDATE_EMAIL);
if (!$email) {
    echo '请输入一个有効な電子メールアドレス。';
}

整数の検証

$age = filter_input(INPUT_POST, 'age', FILTER_VALIDATE_INT);
if (!$age) {
    echo '有効な年齢を入力してください。';
}

認証URL

 $url = filter_input(INPUT_POST, 'url', FILTER_VALIDATE_URL);
if (!$url) {
    echo '有効な値を入力してくださいURL住所。';
}

フィルタ文字列

$name = filter_input(INPUT_POST, 'name', FILTER_SANITIZE_STRING);
if (!$name) {
    echo '有効な値を入力してください姓名。';
}

カスタムフィルター機能

組み込みフィルターに加えて、ユーザー入力を検証するカスタム関数を定義することもできます。カスタム関数は 1 つのパラメーターを受け取り、検証結果 (true または false) を返します。例は次のとおりです。

 function validate_username($username) {
    // ユーザー名は文字で始まる必要があります,文字のみを含めることができます、数字とアンダースコア
    return preg_match('/^[a-zA-Z][a-zA-Z0-9_]*$/', $username);
}

$username = filter_input(INPUT_POST, 'username', FILTER_CALLBACK, array('options' => 'validate_username'));
if (!$username) {
    echo '有効な値を入力してください用户名。';
}

上記の例では、 validate_username 関数は正規表現を使用して、ユーザー名が文字で始まり、文字、数字、アンダースコアのみを含んでいるかどうかを検証します。次に、FILTER_CALLBACK フィルターを介してカスタム関数を呼び出し、ユーザー入力を検証します。

要約する

この記事では、基本的な使用法、一般的なフィルターの種類、カスタム関数の例など、ユーザー入力検証に PHP の filter_input 関数を使用する方法を紹介します。ユーザー入力を正しく検証することは、データの整合性とアプリケーションのセキュリティを確保するために重要であり、これらのヒントは、Web アプリケーションの品質とユーザー エクスペリエンスの向上に役立ちます。

参考文献

  • PHP filter_input 関数のドキュメント: https://www.php.net/filter_input
  • PHP フィルター タイプのドキュメント: https://www.php.net/manual/en/filter.filters.php