探索 PHP 表单验证:从数据过滤到安全提交
文章最后更新时间:2025年12月11日
表单是用户与网站交互的主要载体,而表单验证是保障数据安全的第一道防线 —— 既能过滤无效数据,又能防范恶意提交。本文通过注册表单实例,带你掌握 PHP 表单验证的核心逻辑和安全技巧。

一、基础验证:必填项与格式校验
<?php
$errors = [];
if ($_SERVER["REQUEST_METHOD"] === "POST") {
// 验证用户名(必填,长度3-10位)
$username = trim($_POST["username"] ?? "");
if (empty($username)) {
$errors[] = "用户名不能为空";
} elseif (strlen($username) < 3 || strlen($username) > 10) {
$errors[] = "用户名长度需3-10位";
}
// 验证邮箱格式
$email = trim($_POST["email"] ?? "");
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
$errors[] = "邮箱格式不正确";
}
// 无错误则提交成功
if (empty($errors)) {
echo "表单提交成功!";
} else {
echo implode("<br>", $errors);
}
}
?>二、实战:防止表单重复提交(Token 验证)
<?php
// 生成Token并存储到Session
session_start();
$token = uniqid();
$_SESSION["form_token"] = $token;
// 表单提交时验证Token
if ($_SERVER["REQUEST_METHOD"] === "POST") {
$submittedToken = $_POST["token"] ?? "";
if ($submittedToken !== $_SESSION["form_token"]) {
die("表单重复提交或非法提交!");
}
// 验证通过后销毁Token
unset($_SESSION["form_token"]);
}
?>
<!-- 前端表单添加Token隐藏域 -->
<form method="post">
<input type="hidden" name="token" value="<?php echo $token; ?>">
<!-- 其他表单字段 -->
</form>总结
文章版权声明:除非注明,否则均为Dark零点博客原创文章,转载或复制请以超链接形式并注明出处。

