PHP - Ví dụ về xác thực
Trường bắt buộc sẽ kiểm tra xem trường đã được điền hay chưa theo cách thích hợp. Hầu hết các trường hợp, chúng tôi sẽ sử dụng* ký hiệu cho trường bắt buộc.
Xác thực là gì?
Xác thực có nghĩa là kiểm tra đầu vào do người dùng gửi. Có hai loại xác thực có sẵn trong PHP. Chúng như sau:
Client-Side Validation - Xác thực được thực hiện trên trình duyệt web của máy khách.
Server Side Validation - Sau khi được gửi dữ liệu, dữ liệu đã được gửi đến máy chủ và thực hiện kiểm tra xác nhận trên máy chủ.
Một số quy tắc xác thực cho trường
Cánh đồng | Quy tắc xác thực |
---|---|
Tên | Phải có các chữ cái bắt buộc và khoảng trắng |
Nên yêu cầu @ và . | |
Trang mạng | Nên yêu cầu một URL hợp lệ |
Đài | Phải được chọn ít nhất một lần |
Hộp kiểm tra | Phải kiểm tra được ít nhất một lần |
Trình đơn thả xuống | Phải được chọn ít nhất một lần |
URL hợp lệ
Đoạn mã dưới đây hiển thị xác thực URL
$website = input($_POST["site"]);
if (!preg_match("/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%=~_|]/i",$website)) {
$websiteErr = "Invalid URL";
}
Cú pháp trên sẽ xác minh xem một URL nhất định có hợp lệ hay không. Nó phải cho phép một số từ khóa như https, ftp, www, az, 0-9, .. vv.
Email hợp lệ
Đoạn mã dưới đây hiển thị xác thực địa chỉ Email
$email = input($_POST["email"]);
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
$emailErr = "Invalid format and please re-enter valid email";
}
Cú pháp trên sẽ xác minh xem địa chỉ Email đã cho có đúng hay không. Nếu không, nó sẽ hiển thị thông báo lỗi.
Thí dụ
Ví dụ bên dưới hiển thị biểu mẫu với xác thực trường bắt buộc
<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);
return $data;
}
?>
<h2>Absolute classes registration</h2>
<p><span class = "error">* required field.</span></p>
<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 echo $nameErr;?></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 echo $websiteErr;?></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>";
echo $name;
echo "<br>";
echo $email;
echo "<br>";
echo $website;
echo "<br>";
echo $comment;
echo "<br>";
echo $gender;
?>
</body>
</html>
Nó sẽ tạo ra kết quả sau: