PHP 验证示例
必填字段将检查字段是否以正确的方式填充。在大多数情况下,我们会使用 ***** 符号来表示必填字段。
什么是验证
验证意味着检查用户提交的输入。PHP中有两种类型的验证。它们如下:
- 客户端验证 - 验证是在客户端机器的Web浏览器上执行的。
-
服务器端验证 - 在数据提交后,数据会被发送到服务器并在服务器机器上执行验证检查。
一些字段的验证规则
字段 | 验证规则 |
---|---|
Name | 必须包含字母和空格 |
必须包含 @ 和 . | |
Website | 必须是一个有效的URL |
Radio | 必须至少能选择一次 |
Check Box | 必须至少能选中一次 |
Drop Down menu | 必须至少能选择一次 |
有效的URL
以下代码显示URL的验证。
$website = input($_POST["site"]);
if (!preg_match("/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%=~_|]/i",$website)) {
$websiteErr = "Invalid URL";
}
上述语法将验证给定的URL是否有效。它应该允许一些关键字,如https,ftp,www,a-z,0-9等。
有效的电子邮件
下面的代码演示了电子邮件地址的验证。
$email = input($_POST["email"]);
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
$emailErr = "Invalid format and please re-enter valid email";
}
上述语法将验证给定的电子邮件地址是否格式正确。如果不正确,将显示错误消息。
示例
下面的示例显示了带有必填字段验证的表单
<html>
<head>
<style>
.error {color: #FF0000;}
</style>
</head>
<body>
<?php
// define variables and set to empty values
nameErr =emailErr = genderErr =websiteErr = "";
name =email = gender =comment = website = "";
if (_SERVER["REQUEST_METHOD"] == "POST") {
if (empty(_POST["name"])) {nameErr = "Name is required";
}else {
name = test_input(_POST["name"]);
}
if (empty(_POST["email"])) {emailErr = "Email is required";
}else {
email = test_input(_POST["email"]);
// check if e-mail address is well-formed
if (!filter_var(email, FILTER_VALIDATE_EMAIL)) {emailErr = "Invalid email format";
}
}
if (empty(_POST["website"])) {website = "";
}else {
website = test_input(_POST["website"]);
}
if (empty(_POST["comment"])) {comment = "";
}else {
comment = test_input(_POST["comment"]);
}
if (empty(_POST["gender"])) {genderErr = "Gender is required";
}else {
gender = test_input(_POST["gender"]);
}
}
function test_input(data) {data = trim(data);data = stripslashes(data);data = htmlspecialchars(data);
returndata;
}
?>
<h2>Absolute classes registration</h2>
<span class = "error">* required field.</span>
<form method = "post" action = "<?php
echo htmlspecialchars(_SERVER["PHP_SELF"]);?>">
<table>
<tr>
<td>Name:</td>
<td><input type = "text" name = "name">
<span class = "error">* <?php echonameErr;?></span>
</td>
</tr>
<tr>
<td>E-mail: </td>
<td><input type = "text" name = "email">
<span class = "error">* <?php echo emailErr;?></span>
</td>
</tr>
<tr>
<td>Time:</td>
<td> <input type = "text" name = "website">
<span class = "error"><?php echowebsiteErr;?></span>
</td>
</tr>
<tr>
<td>Classes:</td>
<td> <textarea name = "comment" rows = "5" cols = "40"></textarea></td>
</tr>
<tr>
<td>Gender:</td>
<td>
<input type = "radio" name = "gender" value = "female">Female
<input type = "radio" name = "gender" value = "male">Male
<span class = "error">* <?php echo genderErr;?></span>
</td>
</tr>
<td>
<input type = "submit" name = "submit" value = "Submit"> </td>
</table>
</form>
<?php
echo "<h2>Your given values are as:</h2>";
echoname;
echo "<br>";
echo email;
echo "<br>";
echowebsite;
echo "<br>";
echo comment;
echo "<br>";
echogender;
?>
</body>
</html>
它将产生以下结果 −