ホームページ >バックエンド開発 >PHPチュートリアル >PHP を使用してフォーム入力をフィルタリングして検証するにはどうすればよいですか?
PHP を使用してフォーム入力をフィルタリングおよび検証するにはどうすればよいですか?
Web アプリケーションを開発する場合、ユーザー入力は非常に重要な部分です。アプリケーションのセキュリティと安定性を確保するには、ユーザーが送信したデータをフィルタリングして検証する必要があります。この記事では、PHP を使用してフォーム入力をフィルタリングおよび検証する方法について説明します。
PHP には、filter_input()## など、入力データのフィルタリングに使用できる組み込み関数がいくつかあります。 # および
filter_var()。これらの関数は、さまざまな検証ルールに基づいてさまざまなデータ型をフィルタリングできます。
$email = filter_input(INPUT_POST, 'email', FILTER_SANITIZE_EMAIL); if (filter_var($email, FILTER_VALIDATE_EMAIL)) { echo "邮箱地址验证通过!"; } else { echo "请输入有效的邮箱地址!"; }上の例では、
filter_input() 関数を使用して次のリクエストを実行します。 a POST ユーザーが送信した電子メール フィールドの値を取得し、
FILTER_SANITIZE_EMAIL フィルターを使用して不正な文字を削除します。次に、
filter_var() 関数と
FILTER_VALIDATE_EMAIL フィルターを使用して、フィルターされた電子メール アドレスが正当であることを確認します。
preg_match() 関数は正規表現を使用してデータを検証できます。
$password = $_POST['password']; if (preg_match("/^(?=.*[a-z])(?=.*[A-Z])(?=.*d).{8,}$/", $password)) { echo "密码符合要求!"; } else { echo "密码不符合要求!"; }上の例では、正規表現を使用して、パスワードに at が含まれているかどうかを確認しています。少なくとも 1 つの小文字、1 つの大文字、および 1 つの数字で、少なくとも 8 文字の長さである必要があります。
$stmt = $pdo->prepare("SELECT * FROM users WHERE username = :username AND password = :password"); $stmt->bindParam(':username', $username); $stmt->bindParam(':password', $password); $stmt->execute();上の例では、コロン (:) を使用してパラメータを定義し、次に
bindParam を使用します。 ()関数は変数をパラメータにバインドします。そうすることで、ユーザーが入力したデータがクエリ ステートメントに直接挿入されなくなり、SQL インジェクションのリスクが軽減されます。
以上がPHP を使用してフォーム入力をフィルタリングして検証するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。