NTM Solutions

Bài đăng nổi bật

🐘 PHP Cơ Bản 8.2 — CẤP ĐỘ TRỨNG🥚

Tự học PHP từ ZERO đến làm web động #laptrinhphpcoban 📘 PHẦN 1 — NHẬP MÔN PHP Bài 00 — Giới thiệu khóa học & cài đặt môi trường PHP là ...

Thứ Năm, 18 tháng 6, 2026

📘Bài 18 — Validate Dữ Liệu Form🧪

#laptrinhphpcoban

x0

Sau khi người dùng nhập dữ liệu vào form, bạn không nên tin tưởng dữ liệu đó ngay lập tức.

Người dùng có thể:

❌ Để trống dữ liệu
❌ Nhập khoảng trắng vô nghĩa
❌ Chèn mã HTML hoặc JavaScript độc hại
❌ Gửi dữ liệu sai định dạng

Vì vậy trước khi xử lý hoặc lưu vào database, chúng ta cần Validate (kiểm tra dữ liệu).


🎯 Mục tiêu bài học

Sau bài này bạn sẽ biết:

✅ Kiểm tra dữ liệu bắt buộc nhập

✅ Loại bỏ khoảng trắng thừa

✅ Chống chèn mã HTML

✅ Hiển thị thông báo lỗi

✅ Tạo form an toàn hơn


🤔 Validate là gì?

Validate là quá trình:

🔎 Kiểm tra dữ liệu người dùng nhập có hợp lệ hay không.

Ví dụ:

📝 Dữ liệu✅ Hợp lệ
Nguyễn Văn A
abc@gmail.com
(để trống)Không
<script>alert(1)</script>Không

1️⃣ Kiểm tra dữ liệu bắt buộc (required)

Ví dụ form:

<form method="post">
    Họ tên:
    <input type="text" name="fullname">

    <button type="submit">
        Gửi
    </button>
</form>

Xử lý:

<?php

if ($_SERVER["REQUEST_METHOD"] == "POST") {

    if (empty($_POST["fullname"])) {

        echo "Vui lòng nhập họ tên";

    }

}
?>

Giải thích

empty()

Kiểm tra:

  • Chuỗi rỗng

  • null

  • false

  • giá trị không có dữ liệu

Ví dụ:

$name = "";

if (empty($name)) {
    echo "Trống";
}

Kết quả:

Trống

2️⃣ Hàm trim()

Người dùng có thể nhập:

      Nguyễn Văn A

hoặc

Nguyễn Văn A

với rất nhiều khoảng trắng thừa.


Cú pháp

trim($chuoi);

Ví dụ:

$name = "   Nguyễn Văn A   ";

echo trim($name);

Kết quả:

Nguyễn Văn A

Kết hợp với form

$name = trim($_POST["fullname"]);

Bây giờ dữ liệu sạch hơn trước khi xử lý.


3️⃣ Hàm htmlspecialchars()

Đây là hàm cực kỳ quan trọng.

Nó giúp chuyển các ký tự HTML thành dạng văn bản.


Ví dụ nguy hiểm

Người dùng nhập:

<script>alert('Hack')</script>

Nếu hiển thị trực tiếp:

echo $_POST["fullname"];

Trình duyệt sẽ chạy JavaScript.

⚠️ Đây là lỗ hổng XSS.


Sử dụng htmlspecialchars()

$name = htmlspecialchars($_POST["fullname"]);

echo $name;

Kết quả:

&lt;script&gt;alert('Hack')&lt;/script&gt;

Script không thể chạy được.


🛡️ Bộ lọc cơ bản chuẩn PHP

Thông thường chúng ta kết hợp:

$name = trim($_POST["fullname"]);

$name = htmlspecialchars($name);

Hoặc viết gọn:

$name = htmlspecialchars(
            trim($_POST["fullname"])
        );

4️⃣ Ví dụ hoàn chỉnh

<?php

$message = "";

if ($_SERVER["REQUEST_METHOD"] == "POST") {

    $name = trim($_POST["fullname"]);

    if (empty($name)) {

        $message = "Vui lòng nhập họ tên";

    } else {

        $name = htmlspecialchars($name);

        $message = "Xin chào: " . $name;

    }

}
?>

<form method="post">

    Họ tên:
    <input type="text" name="fullname">

    <button type="submit">
        Gửi
    </button>

</form>

<p><?php echo $message; ?></p>

🧪 Test thử

Nhập:

Nguyễn Văn A

Kết quả:

Xin chào: Nguyễn Văn A

Nhập:

<script>alert(1)</script>

Kết quả:

Xin chào: <script>alert(1)</script>

Script không chạy.


5️⃣ Hàm xử lý dữ liệu riêng

Trong thực tế ta thường tạo hàm:

function clean($data)
{
    $data = trim($data);
    $data = htmlspecialchars($data);

    return $data;
}

Sử dụng:

$name = clean($_POST["fullname"]);

Code ngắn gọn và dễ tái sử dụng.


🚀 Mini Project

Tạo form:

Tên:
<input type="text" name="name">

Email:
<input type="text" name="email">

<button>Gửi</button>

Yêu cầu:

✅ Không được để trống

✅ Dùng trim()

✅ Dùng htmlspecialchars()

✅ Hiển thị dữ liệu sau khi submit


📌 Ghi nhớ

🎯 empty() → kiểm tra dữ liệu trống

🎯 trim() → xóa khoảng trắng đầu và cuối

🎯 htmlspecialchars() → chống XSS cơ bản

🎯 Luôn validate dữ liệu trước khi xử lý hoặc lưu database

🎯 Không bao giờ tin tưởng dữ liệu người dùng gửi lên


🏆 Kết thúc bài 18

Sau bài này bạn đã biết cách:

✅ Validate dữ liệu cơ bản

✅ Kiểm tra dữ liệu bắt buộc

✅ Làm sạch dữ liệu đầu vào

✅ Chống chèn mã HTML nguy hiểm

✅ Chuẩn bị cho việc Upload File và Database

👉 Bài tiếp theo: Bài 19 — Upload File bằng PHP

📂 $_FILES

🖼️ Upload ảnh

🔍 Kiểm tra phần mở rộng (extension)

🛡️ Chặn upload file nguy hiểm

╔══════════════════════════════╗
🤖 Made by AI • Secure PHP 🛡️
╚══════════════════════════════╝
quay về MỤC LỤC

Không có nhận xét nào:

Đăng nhận xét

Facebook Youtube RSS