Sau bài trước về Upload File, chúng ta sẽ học hai công cụ cực kỳ quan trọng trong lập trình web:
✅ Session
✅ Cookie
Đây là nền tảng để xây dựng:
Đăng nhập thành viên
Giỏ hàng
Ghi nhớ tùy chọn người dùng
Theo dõi trạng thái truy cập
🎯 Session là gì?
HTTP là giao thức không nhớ trạng thái.
Ví dụ:
Lần 1:
Trình duyệt gửi yêu cầu
Server phản hồi.
Lần 2:
Trình duyệt gửi yêu cầu mới
Server không biết đó có phải người dùng trước hay không.
Session giúp server ghi nhớ người dùng.
🎯 Khởi tạo Session
Muốn sử dụng Session phải gọi:
session_start();
Ví dụ:
<?php
session_start();
echo "Session đã được khởi tạo";
⚠️ Luôn đặt trước mọi HTML.
Sai:
<h1>Xin chào</h1>
<?php
session_start();
Có thể gây lỗi:
Headers already sent
🎯 Lưu dữ liệu vào Session
Ví dụ:
<?php
session_start();
$_SESSION["username"] = "nguyenvana";
echo "Đã lưu session";
🎯 Đọc dữ liệu Session
<?php
session_start();
echo $_SESSION["username"];
Kết quả:
nguyenvana
🎯 Kiểm tra Session tồn tại
<?php
session_start();
if (isset($_SESSION["username"])) {
echo "Đã đăng nhập";
} else {
echo "Chưa đăng nhập";
}
🎯 Xóa một Session
<?php
session_start();
unset($_SESSION["username"]);
🎯 Xóa toàn bộ Session
<?php
session_start();
session_destroy();
Sau đó người dùng phải đăng nhập lại.
🎯 Ví dụ mô phỏng đăng nhập
login.php
<?php
session_start();
$_SESSION["username"] = "hocvienphp";
echo "Đăng nhập thành công";
profile.php
<?php
session_start();
if (isset($_SESSION["username"])) {
echo "Xin chào ";
echo $_SESSION["username"];
} else {
echo "Bạn chưa đăng nhập";
}
logout.php
<?php
session_start();
session_destroy();
echo "Đã đăng xuất";
🍪 Cookie là gì?
Cookie là dữ liệu lưu trên máy người dùng.
Khác với Session:
| Session | Cookie |
|---|---|
| Lưu trên Server | Lưu trên trình duyệt |
| Bảo mật hơn | Kém bảo mật hơn |
| Hết khi Session kết thúc | Có thể tồn tại nhiều ngày |
🎯 Tạo Cookie
Cú pháp:
setcookie(
"ten_cookie",
"gia_tri",
time() + 3600
);
3600 giây = 1 giờ.
Ví dụ:
<?php
setcookie(
"theme",
"dark",
time() + 3600
);
echo "Đã tạo cookie";
🎯 Đọc Cookie
<?php
echo $_COOKIE["theme"];
Kết quả:
dark
Nên kiểm tra trước:
<?php
if (isset($_COOKIE["theme"])) {
echo $_COOKIE["theme"];
}
🎯 Xóa Cookie
<?php
setcookie(
"theme",
"",
time() - 3600
);
Cookie sẽ bị trình duyệt xóa.
🎯 Ví dụ ghi nhớ giao diện
Lưu lựa chọn nền tối:
<?php
setcookie(
"theme",
"dark",
time() + 86400 * 30
);
30 ngày.
Khi truy cập lại:
<?php
if (
isset($_COOKIE["theme"])
&& $_COOKIE["theme"] === "dark"
) {
echo "Đang dùng giao diện tối";
}
⚠️ Session hay Cookie?
Dùng Session khi:
✅ Đăng nhập
✅ Quyền người dùng
✅ Dữ liệu nhạy cảm
Ví dụ:
user_id
role
token
Dùng Cookie khi:
✅ Ghi nhớ giao diện
✅ Ngôn ngữ
✅ Tùy chọn hiển thị
Ví dụ:
theme
language
font_size
🚫 Không nên lưu
Mật khẩu
Số thẻ ngân hàng
Thông tin bí mật
vào Cookie.
🎯 Bài tập thực hành
Bài 1
Tạo Session:
$_SESSION["fullname"] = "Hoc Vien PHP";
và hiển thị lại.
Bài 2
Kiểm tra:
isset($_SESSION["fullname"])
Bài 3
Tạo Cookie:
language = vi
thời hạn 1 ngày.
Bài 4
Hiển thị giá trị Cookie nếu tồn tại.
Bài 5
Tạo mini hệ thống:
login.php
profile.php
logout.php
bằng Session.
🏆 Tổng kết
Sau bài này bạn đã biết:
✅ session_start()
✅ $_SESSION
✅ unset()
✅ session_destroy()
✅ setcookie()
✅ $_COOKIE
✅ Xóa Cookie
✅ Ứng dụng Session để đăng nhập
Ở bài tiếp theo chúng ta sẽ bắt đầu bước sang thế giới Database với MySQL và phpMyAdmin.
x0




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