/>
Copyright © vietjack.com
Ví dụ về Validation trong PHP
Required Field kiểm tra xem trường đó đã được điền theo đúng cách hay chưa. Hầu hết trường
hợp, chúng ta sẽ sử dụng biểu tượng * cho Required Field.
Validation là gì?
Validation là kiểm tra input được đệ trình bởi người dùng. Có hai kiểu Validation có sẵn trong PHP.
Đó là:
Client-Side Validation − Validation được thực hiện trên trình duyệt web ở Client.
Server-Side Validation − Sau khi được đệ trình bởi người dùng, dữ liệu sẽ được gửi tới
Server và thực hiện các kiểm tra Validation trong thiết bị Server.
Một số qui tắc Validation cho Field
Field
Qui tắc Validation
Name
Yêu cầu chữ cái và khoảng trắng
Email
Yêu cầu @ và .
Website
Yêu cầu một URL hợp lệ
Radio
Phải là có thể lựa chọn ít nhất 1 lần
Check Box
Phải là có thể kiểm tra ít nhất 1 lần
Drop Down menu
Phải là có thể lựa chọn ít nhất 1 lần
URL hợp lệ
Code dưới minh họa Validation của URL:
$website = input($_POST["site"]);
Trang chia sẻ các bài học online miễn phí
Page 1
/>
Copyright © vietjack.com
if (!preg_match("/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z09+&@#\/%=~_|]/i",$website)) {
$websiteErr = "Invalid URL";
}
Cú pháp trên sẽ thẩm tra một URL đã cho là hợp lệ hay không. Nó sẽ chấp nhận một số từ khóa
như https, ftp, www, a-z, 0-9, …
Email hợp lệ
Code dưới minh họa Validation của đị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ẽ thẩm tra địa chỉ Email đã cho là hợp lệ hay không. Nếu không, nó sẽ hiển thị một
thông báo lỗi.
Ví dụ
Ví dụ sau minh họa form với Validation:
<html>
<head>
<style>
.error {color: #FF0000;}
</style>
</head>
<body>
// define variables and set to empty values
$nameErr = $emailErr = $genderErr = $websiteErr = "";
Trang chia sẻ các bài học online miễn phí
Page 2
/>
Copyright © vietjack.com
$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"])) {
Trang chia sẻ các bài học online miễn phí
Page 3
/>
Copyright © vietjack.com
$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;
}
?>
Absolute classes registration
<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 echo $nameErr;?></span>
Trang chia sẻ các bài học online miễn phí
Page 4
/>
Copyright © vietjack.com
</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">
Trang chia sẻ các bài học online miễn phí
Page 5
/>
Copyright © vietjack.com
</td>
</table>
</form>
echo "
Your given values are as:
";
echo $name;
echo "
";
echo $email;
echo "
";
echo $website;
echo "
";
echo $comment;
echo "
";
echo $gender;
?>
</body>
</html>
Nó sẽ cho kết quả:
Trang chia sẻ các bài học online miễn phí
Page 6