Trong quá trình phát triển web bằng PHP, việc gửi một thông báo nhỏ tới người dùng sau khi họ thực hiện hành động gì đó (như gửi form, đăng nhập thành công, đăng ký xong…) là điều cực kỳ phổ biến. Những thông báo này thường chỉ hiển thị một lần duy nhất – rồi biến mất ở lần tải trang tiếp theo. Đó chính là lúc flash message xuất hiện!
Hãy tưởng tượng bạn đi đăng ký tài khoản trên một website. Sau khi nhấn nút “Đăng ký”, bạn thấy một thông báo hiện lên: “Chúc mừng! Bạn đã đăng ký thành công.” Dễ chịu phải không? Nhưng nếu bạn F5 lại trang thì thông báo ấy… biến mất.
Vậy hệ thống làm cách nào để hiển thị một thông báo chỉ đúng một lần như vậy?
Chính là nhờ vào session và kỹ thuật gọi là flash message – một dạng thông báo tạm thời.
Mục tiêu bài học
- Hiểu cách tạo và hiển thị flash message.
- Áp dụng được vào các form gửi dữ liệu như đăng nhập, liên hệ…
- Tổ chức code rõ ràng, dễ bảo trì.
Cách hoạt động của Flash Message
Flash message hoạt động theo cơ chế:
- Gửi thông báo (gán giá trị vào
$_SESSION['flash']). - Hiển thị thông báo nếu tồn tại trong
$_SESSION. - Xóa thông báo ngay sau khi hiển thị để không lặp lại.
Cùng bắt tay vào làm
Tạo file helpers.php (nếu chưa có)
<?php
// Đặt trong includes/helpers.php
function set_flash($type, $message) {
$_SESSION['flash'] = [
'type' => $type,
'message' => $message
];
}
function show_flash() {
if (!empty($_SESSION['flash'])) {
$type = $_SESSION['flash']['type'];
$message = $_SESSION['flash']['message'];
// Có thể tuỳ biến class CSS theo $type
echo "<div class='flash {$type}'>{$message}</div>";
// Xoá sau khi hiển thị
unset($_SESSION['flash']);
}
}
Tùy vào
typemà bạn có thể gắn màu khác nhau như:success,error,warning…
Ví dụ trong file xử lý đăng nhập (login_process.php)
<?php
session_start();
require_once 'includes/helpers.php';
$username = $_POST['username'] ?? '';
$password = $_POST['password'] ?? '';
if ($username === 'admin' && $password === '123456') {
set_flash('success', 'Đăng nhập thành công!');
header('Location: dashboard.php');
exit;
} else {
set_flash('error', 'Sai thông tin đăng nhập.');
header('Location: login.php');
exit;
}
Hiển thị trong login.php
<?php
session_start();
require_once 'includes/helpers.php';
?>
<!DOCTYPE html>
<html>
<head>
<title>Đăng nhập</title>
<style>
.flash.success { background: #d4edda; color: #155724; padding: 10px; margin: 10px 0; }
.flash.error { background: #f8d7da; color: #721c24; padding: 10px; margin: 10px 0; }
</style>
</head>
<body>
<?php show_flash(); ?>
<form method="post" action="login_process.php">
<input type="text" name="username" placeholder="Tên đăng nhập"><br>
<input type="password" name="password" placeholder="Mật khẩu"><br>
<button type="submit">Đăng nhập</button>
</form>
</body>
</html>
Tái sử dụng trong mọi form
Bạn có thể dùng flash message trong bất kỳ hành động nào cần phản hồi người dùng: tạo sản phẩm, gửi liên hệ, cập nhật hồ sơ… Rất tiện và gọn.
Lời kết
Vậy là bạn vừa học được cách tạo ra một hệ thống flash message cơ bản nhưng cực kỳ hữu ích. Kỹ thuật này không chỉ giúp nâng tầm trải nghiệm người dùng, mà còn làm cho website của bạn trông “có tâm” hơn rất nhiều.
Ở bài tiếp theo, chúng ta sẽ áp dụng những kỹ thuật vừa học để làm một form liên hệ giả lập gửi mail như một dự án nho nhỏ nhé!

Thảo luận