ホームページ  >  記事  >  バックエンド開発  >  PHP プログラミングのヒント: フォーム データ フィルタリングの処理方法

PHP プログラミングのヒント: フォーム データ フィルタリングの処理方法

王林
王林オリジナル
2023-08-20 12:52:48747ブラウズ

PHP プログラミングのヒント: フォーム データ フィルタリングの処理方法

PHP プログラミングのヒント: フォーム データのフィルタリングの処理方法

Web 開発では、フォームは対話の非常に一般的な方法です。ユーザーはフォームを通じてデータを入力し、これらをデータは処理のためにサーバーに送信されます。ただし、ユーザー入力は制御できないため、データのセキュリティと信頼性を確保するには、フォーム データを効果的にフィルタリングして検証する必要があります。この記事では、フォーム データのフィルタリングの処理に役立つ、一般的に使用される PHP プログラミング手法をいくつか紹介します。

  1. フィルター関数の使用
    PHP には、さまざまな種類のデータをフィルター処理するために使用できる一連のフィルター関数が用意されています。以下に、一般的に使用されるフィルタリング関数とその使用法を示します。
  • filter_input(): この関数は、GET、POST、COOKIE およびその他のデータをフィルタリングし、フィルタータイプ。たとえば、filter_input(INPUT_POST, 'name', FILTER_SANITIZE_STRING) を使用して、'name' という名前の POST データをフィルタリングし、文字列に変換できます。 FILTER_SANITIZE_STRING HTML タグと特殊文字を削除するために使用されます。
  • filter_var(): この関数は、任意のタイプの変数をフィルター処理し、フィルター タイプを指定できます。たとえば、filter_var($email, FILTER_VALIDATE_EMAIL) を使用して、電子メール アドレスが正当かどうかを確認できます。 FILTER_VALIDATE_EMAIL は、電子メール アドレスを確認するために使用されます。
  • filter_var_array(): この関数は、配列内の複数の変数をフィルタリングできます。たとえば、filter_var_array($_POST, $filters) を使用して、$_POST 配列内の複数のデータをフィルターし、各データのフィルター タイプを指定できます。 $filters は連想配列で、キーはデータの名前、値はフィルターの種類です。

以下は、上記のフィルター関数を使用してフォーム データをフィルター処理する方法を示すサンプル コードです。

$name = filter_input(INPUT_POST, 'name', FILTER_SANITIZE_STRING);
$email = filter_input(INPUT_POST, 'email', FILTER_VALIDATE_EMAIL);
$filters = array(
    'name' => FILTER_SANITIZE_STRING,
    'email' => FILTER_VALIDATE_EMAIL
);
$data = filter_var_array($_POST, $filters);
  1. 正規表現の使用
    正規表現は強力な機能です。文字列の照合とフィルタリングに使用できるツール。正規表現を使用してパターンを定義し、そのパターンを使用して文字列が一致することを確認します。以下は、正規表現を使用してフォーム データをフィルタリングする方法を示すサンプル コードです。
$name = $_POST['name'];
if (!preg_match("/^[a-zA-Z ]*$/", $name)) {
    echo "只允许字母和空格!";
}

上記のコードでは、正規表現 /^[a-zA-Z ]* を使用します。 $ / は、文字とスペースのみを含む文字列と一致します。照合に失敗した場合は、プロンプトメッセージが出力されます。

  1. SQL インジェクションの防止
    フォーム データを処理するときは、SQL インジェクション攻撃の防止に注意する必要があります。 SQL インジェクションを防ぐには、プリペアド ステートメントとパラメータ化されたクエリを使用してデータベース クエリを処理する必要があります。以下は、SQL インジェクションを防ぐ方法を示すサンプル コードです。
$name = $_POST['name'];
$email = $_POST['email'];

$stmt = $conn->prepare("INSERT INTO users (name, email) VALUES (?, ?)");
$stmt->bind_param("ss", $name, $email);
$stmt->execute();
$stmt->close();

上記のコードでは、プリペアド ステートメントと binding_param() メソッドを使用して、フォーム データをデータベースに挿入します。 bind_param() メソッドの最初のパラメータはデータ型で、「ss」は両方のパラメータが文字列であることを意味します。

概要:
フォーム データを処理する場合、データ フィルタリングは不可欠です。フィルタリング機能、正規表現、SQL インジェクション防止テクノロジを使用すると、データのセキュリティと信頼性を効果的に保護できます。実際のニーズに基づいて適切なフィルタリング方法を選択し、コード内のエラーと例外の処理に注意を払う必要があります。

上記は、フォーム データのフィルタリングを処理する方法という PHP プログラミング スキルの紹介です。

以上がPHP プログラミングのヒント: フォーム データ フィルタリングの処理方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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