PHP フォーム送信後にデータ検証を実装する方法
Web アプリケーションを開発する場合、フォームはユーザーと対話するための最も一般的な方法の 1 つです。ただし、ユーザーが送信したデータは信頼できないことが多いため、フォームによって送信されたデータを検証して、データのセキュリティと整合性を確保する必要があります。この記事では、PHP を使用してフォーム送信後のデータ検証を実装する方法を紹介します。
action
属性を設定する必要があります。提出 データ。例: <form action="handle_form.php" method="post"> <input type="text" name="username" placeholder="用户名"> <input type="password" name="password" placeholder="密码"> <input type="submit" value="提交"> </form>
$_POST
グローバル変数を使用してフォーム送信データを取得できます。 。その後、さまざまなフォームフィールドに対して対応する検証を実行できます。 たとえば、empty()
関数を使用して必須フィールドが空かどうかを確認し、filter_var()
関数を使用して電子メールを確認できます。アドレスや URL、その他の特定の形式。
<?php $username = $_POST['username']; $password = $_POST['password']; // 验证用户名 if (empty($username)) { echo "用户名不能为空"; } // 验证密码 if (empty($password)) { echo "密码不能为空"; } // 验证邮箱 $email = $_POST['email']; if (!filter_var($email, FILTER_VALIDATE_EMAIL)) { echo "邮箱格式不正确"; } // 验证URL $url = $_POST['url']; if (!filter_var($url, FILTER_VALIDATE_URL)) { echo "URL格式不正确"; } ?>
上記の例では、まず empty()
関数を使用してユーザー名とパスワードが空かどうかを確認し、空の場合は対応するプロンプト情報が出力されます。次に、filter_var()
関数を使用して、メールと URL が対応する形式と一致するかどうかを検証し、一致しない場合は、対応するプロンプト情報を出力します。
<?php $errors = []; // 验证用户名 if (empty($username)) { $errors['username'] = "用户名不能为空"; } // 验证密码 if (empty($password)) { $errors['password'] = "密码不能为空"; } // 验证邮箱 $email = $_POST['email']; if (!filter_var($email, FILTER_VALIDATE_EMAIL)) { $errors['email'] = "邮箱格式不正确"; } // 验证URL $url = $_POST['url']; if (!filter_var($url, FILTER_VALIDATE_URL)) { $errors['url'] = "URL格式不正确"; } if (!empty($errors)) { foreach ($errors as $error) { echo $error; } } ?>
エラー情報を $errors
配列に保存し、送信後にエラー情報を走査して出力することにより、統一されたエラー処理とプロンプトを実現できます。
<?php $username = $_POST['username']; $username = mysqli_real_escape_string($conn, $username); // ... ?>
上の例では、mysqli_real_escape_string()
関数を使用してユーザー名を安全にエスケープします。これにより、ユーザーが悪意を持って特殊文字を含むデータを送信するのを防ぐことができます。
概要
上記の手順により、フォームの送信後にデータを検証できるため、アプリケーションのセキュリティが向上します。実際のアプリケーションでは、特定のニーズに基づいてより柔軟な検証を実行でき、フロントエンド JavaScript を組み合わせてリアルタイム検証を行うことで、ユーザー エクスペリエンスを向上させることができます。
以上がPHPフォーム送信後にデータ検証を実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。