<?php
// 定义变量并初始化为空
$name = $email = $url = $nameErr = $emailErr = $urlErr = "";
if ($_SERVER["REQUEST_METHOD"] == "POST") {
// 验证姓名
if (empty($_POST["name"])) {
$nameErr = "Name is required";
} else {
$name = test_input($_POST["name"]);
// 检查姓名是否只包含字母和空格
if (!preg_match("/^[a-zA-Z ]*$/", $name)) {
$nameErr = "Only letters and white space allowed";
}
}
// 验证电子邮件
if (empty($_POST["email"])) {
$emailErr = "Email is required";
} else {
$email = test_input($_POST["email"]);
// 检查电子邮件地址的格式
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
$emailErr = "Invalid email format";
}
}
// 验证URL
if (empty($_POST["url"])) {
$urlErr = "URL is required";
} else {
$url = test_input($_POST["url"]);
// 检查URL的格式
if (!filter_var($url, FILTER_VALIDATE_URL)) {
$urlErr = "Invalid URL format";
}
}
// 如果没有错误,可以进一步处理表单数据,例如将其保存到数据库中
}
function test_input($data) {
// 去除空格、斜杠和HTML标签
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>PHP Form Validation</title>
</head>
<body>
<form action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>" method="post">
<label for="name">Name:</label>
<input type="text" id="name" name="name">
<span class="error"><?php echo $nameErr; ?></span>
<br>
<label for="email">Email:</label>
<input type="email" id="email" name="email">
<span class="error"><?php echo $emailErr; ?></span>
<br>
<label for="url">URL:</label>
<input type="text" id="url" name="url">
<span class="error"><?php echo $urlErr; ?></span>
<br>
<input type="submit" value="Submit">
</form>
</body>
</html>
在这个例子中,我们添加了对URL的验证。使用FILTER_VALIDATE_URL过滤器检查URL的格式是否有效。同样,将错误消息存储在相应的错误变量中,并在表单中显示这些错误消息。
确保你的验证逻辑适用于你的具体用例,并根据需要进行调整。在实际项目中,可能需要更复杂的验证规则和错误处理机制。
转载请注明出处:http://www.zyzy.cn/article/detail/3414/PHP