Thứ Sáu, 12 tháng 6, 2026

Remember Me hoạt động thế nào? (Khi website nhớ bạn lâu hơn cả người yêu cũ nhớ ngày sinh nhật)

Không ai là hoàn hảo, có những chuyện mà chúng ta muốn mọi người "quên phắt" đi càng lâu càng tốt, một ngày đẹp trời nào đó, bỗng dưng ông "bạn nối khố" vui miệng nhắc lại chuyện ngày xưa hai thằng trèo tường ăn trộm ổi nhà bà hàng xóm đứng lúc đăng ngồi cạnh "người trong mộng" thì đúng là...hết thuốc chữa!

Bạn vào Facebook.

Login.

Click chọn:

☑ Remember Me

Một tuần sau.

Mở lại.


😎 Vẫn đăng nhập.


Một tháng sau.

Mở lại.


😎 Vẫn đăng nhập.


Bạn bắt đầu "théc méc" tự hỏi:

"Ủa?"

"Website nhớ mình kiểu gì?"

"Nó có siêu năng lực à?"

😄


Remember Me là gì?

Remember Me là tính năng cho phép website ghi nhớ trạng thái đăng nhập của người dùng trong thời gian dài.

Thay vì:

Tắt trình duyệt
↓
Mất login

Website sẽ:

Tắt trình duyệt
↓
Mở lại
↓
Vẫn login

Tính năng này thường dùng:

  • Facebook
  • Gmail
  • Shopee
  • Lazada
  • Diễn đàn
  • Website thành viên

Ví dụ trớt quớt 😭

Bạn không dùng Remember Me.


User login.


5 phút sau:

Tắt trình duyệt

Mở lại.


💀

Login Again

Người dùng...giận:

"Thôi nghỉ."

"Tôi nhớ password còn website không nhớ tôi."

😅


Ví dụ đời thường 🍜

Bạn tới quán cà phê quen.


Ngày nào cũng tới.


Chủ quán nhìn thấy:

"À, anh uống đen đá ít đường đúng không?"

😎


Đó chính là:

Remember Me

Website nhận ra bạn mà không cần hỏi lại.


Session bình thường hoạt động thế nào? 😵

Người mới thường nghĩ:

$_SESSION

là Remember Me.


Không hẳn.


Session thường sống tới khi:

Đóng trình duyệt

hoặc

Hết thời gian sống

Ví dụ:

$_SESSION['user'] = 'admin';

Login được.


Nhưng vài giờ sau:

💀

Session mất.


Remember Me dùng gì? 😎

Câu trả lời là:

Cookie

Cookie có thể sống:

  • 1 ngày
  • 7 ngày
  • 30 ngày
  • 1 năm

Ví dụ:

setcookie(
    "username",
    "admin",
    time()+86400
);

Cookie tồn tại:

24 giờ

Cách người mới hay làm 🤡

setcookie(
    "username",
    $username,
    time()+86400*30
);

Sau đó:

Cookie chứa username

Đăng nhập tự động.


Chạy được.


Nhưng...


Sai lầm cực nguy hiểm 😭

Một số người lưu:

Cookie:
username=admin
password=123456

💀💀💀


Đây là cách cực kỳ không nên làm.


Nếu máy tính bị xem cookie.

Password lộ luôn.

😭


Website lớn làm thế nào? 😎

Facebook không lưu:

password thật

Họ thường lưu:

token

Ví dụ:

a8d7f9h2k1...

Token không phải password.


Nếu token hết hạn:

Login Again

An toàn hơn rất nhiều.


Mô hình Remember Me đơn giản 😎

Login thành công.


PHP tạo:

$token = bin2hex(random_bytes(32));

Lưu token vào:

Database

Cookie

Lần sau user quay lại.


PHP kiểm tra:

Cookie token
↓
Database token
↓
Có khớp?

Nếu:

YES

Tự động login.

😎


InfinityFree Case 😅

Rất nhiều bạn nghĩ:

"Remember Me không chạy."

"Chắc host lỗi."


Thực tế thường là:

Cookie chưa được tạo.


Hoặc:

setcookie()

đặt sau:

echo

Kết quả:

🤡

Cookie không lưu.


Lỗi cực phổ biến 😭

❌ 1. Quên thời gian hết hạn

setcookie(
   "user",
   $user
);

Cookie sẽ là:

Session Cookie

Đóng browser.


💀

Biến mất.


❌ 2. Echo trước setcookie()

echo "Hello";

setcookie(...);

👉 Header Already Sent

🤡


❌ 3. Lưu password thật

Đây là lỗi nguy hiểm nhất.


❌ 4. Không kiểm tra token trong database

Cookie tồn tại.


Nhưng database không có.


Vẫn auto login.

💀


Sự thật biết rồi, khổ lắm, nói mãi 😎

Nhiều website:

Remember Me

không có nghĩa là:

Nhớ mãi mãi

Thường chỉ:

  • 7 ngày
  • 30 ngày
  • 90 ngày

Sau đó:

Login Again

Để tăng bảo mật.


Debug kiểu dev thật 😎

✅ 1. Kiểm tra Cookie

Chrome:

F12
Application
Cookies

✅ 2. Kiểm tra thời gian hết hạn

Cookie có:

Expires

không?


✅ 3. Kiểm tra Database Token

Có lưu chưa?


✅ 4. Test đóng browser

Đóng hoàn toàn.

Mở lại.


Xem còn login không.


Checklist chuẩn không cần chỉnh 😎

☑ Dùng Cookie

☑ Không lưu password thật

☑ Dùng token ngẫu nhiên

☑ Lưu token trong database

☑ Có thời gian hết hạn

☑ Không echo trước setcookie()

☑ Kiểm tra Cookie bằng F12

☑ Test trên host thật


FAQ nhanh

Remember Me có phải Session không?

→ Không hoàn toàn.

Thường dùng Cookie.


Có nên lưu password trong Cookie không?

→ Không 😭


Website lớn dùng gì?

→ Token.


InfinityFree có hỗ trợ Remember Me không?

→ Có.

Nếu code đúng.


Bạn có thể cũng đang gặp 😭

👉 Login thành công nhưng quay lại vẫn vào được Login Page

👉 Logout rồi nhưng Browser Back vẫn vào được

👉 Session PHP không hoạt động

👉 Header Already Sent

👉 Login đúng password nhưng vẫn fail

👉 Redirect sau submit form đúng cách


Tổng kết

Remember Me nghe có vẻ đơn giản:

☑ Remember Me

Nhưng phía sau là:

  • Cookie
  • Token
  • Session
  • Bảo mật

Nguyên tắc quan trọng nhất:

👉 Đừng lưu password thật trong Cookie.

👉 Hãy dùng token.

👉 Hãy nghĩ như Facebook chứ đừng nghĩ như... Notepad. 😄

Và hãy nhớ:

Website nhớ bạn lâu hơn cả người yêu cũ nhớ ngày sinh nhật là điều tuyệt vời.

Nhưng hacker cũng nhớ bạn lâu như vậy thì lại là chuyện khác. 😆