Kiểm tra và xử lý lỗi dữ liệu trong form
Tạo bởi Hoàng Vũ, chỉnh sửa cuối lúc 18 tháng 5, 2025
Mục tiêu:
- Hiểu cách kiểm tra dữ liệu người dùng nhập vào form, và thông báo lỗi nếu thiếu hoặc sai định dạng.

Bước 1: Tạo form HTML
<form method="POST" action="">
Họ tên: <input type="text" name="name"><br>
Email: <input type="text" name="email"><br>
Tuổi: <input type="text" name="age"><br>
<button type="submit">Gửi</button>
</form>
Bước 2: Xử lý và bắt lỗi với PHP
<?php
$name = $email = $age = "";
$nameErr = $emailErr = $ageErr = "";
if ($_SERVER["REQUEST_METHOD"] == "POST") {
// Bắt lỗi tên
if (empty($_POST["name"])) {
$nameErr = "Vui lòng nhập họ tên";
} else {
$name = htmlspecialchars($_POST["name"]);
}
// Bắt lỗi email
if (empty($_POST["email"])) {
$emailErr = "Vui lòng nhập email";
} elseif (!filter_var($_POST["email"], FILTER_VALIDATE_EMAIL)) {
$emailErr = "Email không hợp lệ";
} else {
$email = htmlspecialchars($_POST["email"]);
}
// Bắt lỗi tuổi
if (empty($_POST["age"])) {
$ageErr = "Vui lòng nhập tuổi";
} elseif (!is_numeric($_POST["age"]) || $_POST["age"] <= 0) {
$ageErr = "Tuổi phải là số dương";
} else {
$age = (int)$_POST["age"];
}
}
?>
Bước 3: Hiển thị lại form kèm thông báo lỗi
Thêm PHP vào ngay sau mỗi trường:
<form method="POST" action="">
Họ tên: <input type="text" name="name" value="<?php echo $name; ?>"><br>
<span style="color:red"><?php echo $nameErr; ?></span><br>
Email: <input type="text" name="email" value="<?php echo $email; ?>"><br>
<span style="color:red"><?php echo $emailErr; ?></span><br>
Tuổi: <input type="text" name="age" value="<?php echo $age; ?>"><br>
<span style="color:red"><?php echo $ageErr; ?></span><br>
<button type="submit">Gửi</button>
</form>
Bước 4: In kết quả nếu không có lỗi
Thêm vào dưới phần xử lý:
if ($_SERVER["REQUEST_METHOD"] == "POST" && !$nameErr && !$emailErr && !$ageErr) {
echo "<h3 style='color:green'>Dữ liệu hợp lệ:</h3>";
echo "Họ tên: $name<br>";
echo "Email: $email<br>";
echo "Tuổi: $age<br>";
}
Kết quả:
- Nếu để trống hoặc nhập sai, sẽ có dòng báo lỗi màu đỏ.
- Nếu nhập đúng, sẽ hiển thị kết quả đã nhập.
Ghi chú:
-
htmlspecialchars()
dùng để chống XSS (mã độc từ người dùng). -
filter_var(..., FILTER_VALIDATE_EMAIL)
kiểm tra định dạng email chuẩn. - Có thể thêm các kiểm tra nâng cao như độ dài chuỗi, ký tự đặc biệt, v.v.

Với hơn 10 năm kinh nghiệm lập trình web và từng làm việc với nhiều framework, ngôn ngữ như PHP, JavaScript, React, jQuery, CSS, HTML, CakePHP, Laravel..., tôi hy vọng những kiến thức được chia sẻ tại đây sẽ hữu ích và thiết thực cho các bạn.
Xem thêm

Chào, tôi là Vũ. Đây là blog hướng dẫn lập trình của tôi.
Liên hệ công việc qua email dưới đây.
lhvuctu@gmail.com