ホームページ  >  記事  >  バックエンド開発  >  PHP の filter_input_array() 関数を使用して、複数の単一ユーザーが入力したデータをフィルタリングします。

PHP の filter_input_array() 関数を使用して、複数の単一ユーザーが入力したデータをフィルタリングします。

王林
王林オリジナル
2023-11-03 10:46:53788ブラウズ

PHP の filter_input_array() 関数を使用して、複数の単一ユーザーが入力したデータをフィルタリングします。

PHP 開発では、ユーザー入力データを処理する必要があることが多く、信頼できないユーザー入力データは、SQL インジェクションや XSS 攻撃など、さまざまなセキュリティ問題を簡単に引き起こす可能性があります。したがって、ユーザー入力を受け取るときは、入力データがシステムのセキュリティを向上させるための要件を満たしていることを確認するために、データをフィルタリングして検証する必要があります。

PHP は、単一または複数のユーザー入力データをフィルタリングするための filter_input_array() 関数を提供します。この関数は、フィルターを使用して入力データのセットを検証およびフィルター処理することにより、入力データのセキュリティを向上させることができます。

この記事では、PHP の filter_input_array() 関数を使用して、複数の単一ユーザーが入力したデータをフィルターする方法を紹介し、対応するコード例を示します。

1. filter_input_array() 関数

filter_input_array() 関数は、複数の入力データを検証およびフィルタリングするために使用されます。この関数の定義は次のとおりです:

filter_input_array ( int $type [, mixed $definition [, bool $add_empty = true ]] ) : mixed

この関数は 3 つのパラメータを渡す必要があります:

パラメータ 1: type、必要なデータ型を示します。 INPUT_GETINPUT_POSTINPUT_COOKIEINPUT_SERVER などのフィルターが適用されます。具体的な意味は次のとおりです。

  • INPUT_GET: $_GET から変数を取得;
  • INPUT_POST: $_POST## から変数を取得#;
  • INPUT_COOKIE: $_COOKIE から変数を取得します;
  • INPUT_SERVER: $_SERVER から変数を取得します;
  • INPUT_ENV: $_ENV から変数を取得します;
  • INPUT_REQUEST: から変数を取得します$_REQUEST
パラメータ 2:

定義, 入力データの定義ルールを表します。ルール配列のセットを使用して定義できます。具体的な形式は次のとおりです:

array(
    '变量名' => array(
        'filter'   => 指定的验证器,
        'flags'    => 可选的标记,
        'options'  => 可选的选项,
        'name'     => 为变量指定一个替代名称,
    ),
    '变量名2' => array(
        'filter'   => 指定的验证器2,
        'flags'    => 可选的标记,
        'options'  => 可选的选项,
        'name'     => 为变量指定一个替代名称2,
    ),
    //...
);

ここで、

filter は指定されたバリデータを表します。これは、FILTER_VALIDATE_EMAILFILTER_VALIDATE_INT などの組み込みバリデータ、またはカスタム バリデータ、flags はオプションのタグを表し、options はオプションのオプションを表し、name は変数の代替名を表します。

パラメータ 3:

add_empty、空の値をフィルタリングして検証するかどうかを示します。

この関数の戻り値はフィルタリングされたデータであり、エラーが発生した場合は

false を返します。

2. filter_input_array() 関数を使用して複数の単一ユーザーが入力したデータをフィルター処理する

以下に、filter_input_array() 関数を使用して複数の単一ユーザーが入力したデータをフィルター処理する例を示します。次の要件を満たすように、ユーザー名、電子メール アドレス、年齢を含むフォーム データを検証およびフィルター処理するとします。

    ユーザー名には文字と数字のみを含めることができ、長さは 6 ~ 12 文字です
  • 電子メールは合法的な電子メール形式である必要があります
  • 年齢は 18 から 100 までの数字である必要があります
サンプル コードは次のとおりです:

<?php
    $definitions = array(
        'username' => array(
            'filter'   => FILTER_VALIDATE_REGEXP,
            'options'  => array('regexp' => '/^[a-z0-9_-]{6,12}$/i'),
            'name'     => '用户名',
        ),
        'email' => array(
            'filter'   => FILTER_VALIDATE_EMAIL,
            'name'     => '邮箱',
        ),
        'age' => array(
            'filter'   => FILTER_VALIDATE_INT,
            'options'  => array('min_range' => 18, 'max_range' => 100),
            'name'     => '年龄',
        ),
    );

    $input_data = filter_input_array(INPUT_POST, $definitions);

    if (!$input_data) {
        echo '发生了一个错误。';
    } else {
        if (in_array(null, $input_data, true) || in_array(false, $input_data, true)) {
            echo '输入数据不正确。';
        } else {
            echo '输入数据正确。';
        }
    }
?>

where では、3 つの入力データを含む配列を定義し、filter_input_array() 関数を通じてこれらの入力データを検証してフィルタリングします。上記の例では、いくつかの組み込みバリデータ

FILTER_VALIDATE_REGEXPFILTER_VALIDATE_EMAIL、および FILTER_VALIDATE_INT を使用しており、入力データが正規表現に準拠しているかどうかを検証するために使用されます。 . 、電子メール形式に準拠しているかどうか、および整数であるかどうか。さらに、min_rangemax_range などのいくつかのオプションを使用して、入力データの最小値と最大値を許可します。最後に、if ステートメントを使用して、入力データが正当かどうかを判断します。

3. 結論

filter_input_array() 関数を使用すると、複数の単一ユーザーが入力したデータを簡単に検証してフィルタリングし、データのセキュリティを向上させることができます。この機能を使用する場合、入力データの正当性を保証するために、入力データに対してルール、バリデータ、オプションなどを定義する必要があります。この機能を適切に使用すると、システムのセキュリティを効果的に保護し、一般的なセキュリティ脆弱性を回避できます。

以上がPHP の filter_input_array() 関数を使用して、複数の単一ユーザーが入力したデータをフィルタリングします。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。