Chúng ta đã quen dần với việc xử lý form, làm việc với nhiều file, và tổ chức code hợp lý. Trong bài học hôm nay, mình sẽ hướng dẫn bạn tạo một form liên hệ cơ bản — mô phỏng một tính năng rất phổ biến trong mọi website: cho người dùng gửi tin nhắn đến admin.
Dù chưa gửi mail thật, bài học này sẽ giúp bạn luyện tập:
- Thu thập dữ liệu từ người dùng
- Kiểm tra dữ liệu nhập vào
- Hiển thị phản hồi (flash message)
Coi như bạn đang làm một “bưu điện mini” nội bộ nhé. Bài này cũng sẽ tạo nền tảng để sau này bạn tích hợp tính năng gửi mail thật bằng PHPMailer hoặc các dịch vụ bên ngoài.
Mục tiêu
- Tạo form liên hệ gồm các trường cơ bản: Họ tên, Email, Nội dung
- Xử lý dữ liệu form bằng PHP
- Kiểm tra dữ liệu nhập vào
- Hiển thị thông báo gửi thành công/ lỗi
Giao diện form
Trong file contact.php, bạn tạo một form HTML đơn giản:
<h2>Liên hệ với chúng tôi</h2>
<form action="contact.php" method="post">
<label>Họ tên:</label><br>
<input type="text" name="fullname" required><br><br>
<label>Email:</label><br>
<input type="email" name="email" required><br><br>
<label>Nội dung:</label><br>
<textarea name="message" rows="5" required></textarea><br><br>
<button type="submit">Gửi liên hệ</button>
</form>
Hãy để form này gọn gàng, dễ hiểu, và không quên sử dụng required để kiểm tra cơ bản từ phía trình duyệt.
Xử lý dữ liệu liên hệ
Ngay trong file contact.php, bạn thêm đoạn xử lý phía trên phần HTML như sau:
session_start();
require 'functions.php'; // chứa hàm flash()
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$fullname = trim($_POST['fullname']);
$email = trim($_POST['email']);
$message = trim($_POST['message']);
if ($fullname && filter_var($email, FILTER_VALIDATE_EMAIL) && $message) {
// Giả lập việc lưu vào CSDL hoặc gửi mail
flash('success', 'Cảm ơn bạn đã liên hệ. Chúng tôi sẽ phản hồi sớm nhất!');
} else {
flash('error', 'Vui lòng điền đầy đủ và đúng thông tin.');
}
header('Location: contact.php');
exit;
}
Chúng ta kiểm tra đơn giản:
- Họ tên có tồn tại
- Email đúng định dạng
- Nội dung không rỗng
Sau đó dùng hàm flash() (đã học ở bài trước) để báo thành công hoặc lỗi.
Hiển thị thông báo
Ngay trên phần form, bạn thêm đoạn sau để hiển thị flash message:
<?php
if (isset($_SESSION['flash'])) {
echo '<p style="color: green;">' . $_SESSION['flash']['message'] . '</p>';
unset($_SESSION['flash']);
}
?>
Bạn có thể style thông báo này cho đẹp mắt hơn, ví dụ: màu đỏ với lỗi, màu xanh với thành công.
Gợi ý mở rộng
- Lưu thông tin liên hệ vào file
.txthoặc database để luyện tập thêm. - Kiểm tra độ dài chuỗi nhập vào, tránh spam quá nhiều ký tự.
- Sau này có thể kết nối
PHPMailerđể gửi email thật sự.
Tổng kết
Bài học hôm nay là một bước tiến mới: từ xử lý form đơn giản, bạn bắt đầu mô phỏng một luồng thực tế trong website — nhận và xử lý thông tin từ người dùng. Dù chưa gửi email thật, nhưng việc tổ chức form và phản hồi giúp bạn hiểu rõ quy trình.
Trong bài sau, ta sẽ cùng nhau làm một Mini Project: hệ thống liên hệ chuyên nghiệp, tổng hợp các kỹ năng đã học để xây dựng một module hoàn chỉnh và có thể tái sử dụng.

Thảo luận