Session trong PHP
Trần Thị Vân
- 1281
- 29/07/2025
Session trong PHP là gì?
Session trong PHP là một cách lưu trữ thông tin giống như một biến, giá trị của session sẽ được truy cập trên toàn website và sẽ mất đi sau khi đóng trình duyệt hoặc có câu lệnh hủy session.
Khởi tạo và sử dụng Session trong PHP
Khởi tạo Session trong PHP
Để khởi tạo và sử dụng được session ở toàn trang thì phải đặt câu lệnh session_start(); ở đầu trang:
<?php
session_start();
?>
Tạo và sử dụng biến session trong PHP
$_SESSION["tên_session"] = "giá_trị_session";
tên_session: Tên session.
giá_trị_session: Giá trị session.
Khi khai báo session_start(); ở trên đầu trang và trên toàn trang thì khi ở URL khác trên cùng website thì vẫn in ra được biến session, ở đây mình chỉ in trên trang hiện tại:
<?php
session_start();
$_SESSION["iddangnhap"] = "270290";
$_SESSION["username"] = "tanlucit09";
$_SESSION["tendangnhap"] = "Bùi Tấn Lực";
echo "ID: ".$_SESSION["iddangnhap"]."<br>";
echo "Username: ".$_SESSION["username"]."<br>";
echo "Tên đăng nhập: ".$_SESSION["tendangnhap"]."<br>";
?>
Kết quả:
ID: 270290
Username: tanlucit09
Tên đăng nhập: Bùi Tấn Lực
Thay đổi giá trị biến session trong PHP
<?php
session_start();
// Tạo biến session gắn giá trị
$_SESSION["iddangnhap"] = "270290";
$_SESSION["username"] = "tanlucit09";
$_SESSION["tendangnhap"] = "Bùi Tấn Lực";
// Lấy giá trị của biến session
echo "ID: ".$_SESSION["iddangnhap"]."<br>";
echo "Username: ".$_SESSION["username"]."<br>";
echo "Tên đăng nhập: ".$_SESSION["tendangnhap"]."<br>";
// Thay đổi giá trị của biến session
echo "<b>Thay đổi giá trị của biến session và in lại</b><br>";
$_SESSION["iddangnhap"] = "060996";
$_SESSION["username"] = "vantran";
$_SESSION["tendangnhap"] = "Trần Thị Vân";
// Lấy giá trị biến session đã thay đổi
echo "ID: ".$_SESSION["iddangnhap"]."<br>";
echo "Username: ".$_SESSION["username"]."<br>";
echo "Tên đăng nhập: ".$_SESSION["tendangnhap"]."<br>";
?>
Kết quả:
ID: 270290
Username: tanlucit09
Tên đăng nhập: Bùi Tấn Lực
Thay đổi giá trị của biến session và in lại
ID: 060996
Username: vantran
Tên đăng nhập: Trần Thị Vân
Hủy Session trong PHP
unset($_SESSION["tên_session"]);
tên_session: Tên Session.
<?php
session_start();
// Tạo giá trị cho biến Session
$_SESSION["iddangnhap"] = "270290";
$_SESSION["username"] = "tanlucit09";
$_SESSION["tendangnhap"] = "Bùi Tấn Lực";
// In ra giá trị của biến Session
echo "ID: ".$_SESSION["iddangnhap"]."<br>";
echo "Username: ".$_SESSION["username"]."<br>";
echo "Tên đăng nhập: ".$_SESSION["tendangnhap"]."<br>";
// Hủy session iddangnhap và in ra 3 biến xem còn mấy biến
echo "<b>Hủy session iddangnhap và in ra 3 biến xem còn mấy biến</b> <br>";
unset($_SESSION["iddangnhap"]);
// In ra giá trị của biến Session sau khi Hủy session iddangnhap
echo "ID: ".$_SESSION["iddangnhap"]."<br>";
echo "Username: ".$_SESSION["username"]."<br>";
echo "Tên đăng nhập: ".$_SESSION["tendangnhap"]."<br>";
//Dùng session_destroy(); để hủy toàn bộ session và in ra 3 biến xem còn mấy biến
echo "<b>Dùng session_destroy(); để hủy toàn bộ session và in ra 3 biến xem còn mấy biến</b> <br>";
session_destroy();
// In ra giá trị của biến Session sau khi dùng session_destroy();
echo "ID: ".$_SESSION["iddangnhap"]."<br>";
echo "Username: ".$_SESSION["username"]."<br>";
echo "Tên đăng nhập: ".$_SESSION["tendangnhap"]."<br>";
// Vẫn còn session nên đặt theo kiểu khác để hủy
echo "<b>Vẫn còn session nên đặt theo kiểu khác để hủy</b> <br>";
$_SESSION["dangnhap"]["iddangnhap"] = "270290";
$_SESSION["dangnhap"]["username"] = "tanlucit09";
$_SESSION["dangnhap"]["tendangnhap"] = "Bùi Tấn Lực";
echo "ID: ".$_SESSION["dangnhap"]["iddangnhap"]."<br>";
echo "Username: ".$_SESSION["dangnhap"]["username"]."<br>";
echo "Tên đăng nhập: ".$_SESSION["dangnhap"]["tendangnhap"]."<br>";
echo "<b>Hủy toàn bộ session dangnhap và in ra 3 biến xem còn mấy biến</b> <br>";
unset($_SESSION["dangnhap"]);
echo "ID: ".$_SESSION["dangnhap"]["iddangnhap"]."<br>";
echo "Username: ".$_SESSION["dangnhap"]["username"]."<br>";
echo "Tên đăng nhập: ".$_SESSION["dangnhap"]["tendangnhap"]."<br>";
?>
Kết quả:
ID: 270290
Username: tanlucit09
Tên đăng nhập: Bùi Tấn Lực
Hủy session iddangnhap và in ra 3 biến xem còn mấy biến
ID:
Username: tanlucit09
Tên đăng nhập: Bùi Tấn Lực
Dùng session_destroy(); để hủy toàn bộ session và in ra 3 biến xem còn mấy biến
ID:
Username: tanlucit09
Tên đăng nhập: Bùi Tấn Lực
Vẫn còn session nên đặt theo kiểu khác để hủy
ID: 270290
Username: tanlucit09
Tên đăng nhập: Bùi Tấn Lực
Hủy toàn bộ session dangnhap và in ra 3 biến xem còn mấy biến
ID:
Username:
Tên đăng nhập:
Ứng dụng Session trong PHP vào thực tế
Session không chỉ dùng để lưu một vài giá trị trong quá trình xử lý PHP mà còn là cách quen thuộc để duy trì dữ liệu tạm thời giữa nhiều lần truy cập trang. Khi sử dụng đúng cách, Session giúp website ghi nhớ trạng thái của người dùng mà không cần truyền dữ liệu qua URL ở mỗi request.
Kiểm tra trạng thái đăng nhập bằng Session
Một trong những ứng dụng phổ biến nhất của Session là xác định người dùng đã đăng nhập hay chưa. Sau khi xác thực tài khoản thành công, website có thể lưu một giá trị nhận diện vào Session. Những trang cần bảo vệ chỉ việc kiểm tra giá trị này trước khi cho phép truy cập.
Cách làm này phù hợp với các khu vực như trang quản trị, trang tài khoản hoặc những chức năng chỉ dành cho thành viên. Nếu Session không chứa thông tin xác thực cần thiết, người dùng có thể được chuyển về trang đăng nhập thay vì tiếp tục truy cập nội dung riêng tư.
<?php
session_start();
if (!isset($_SESSION['user_id'])) {
header('Location: login.php');
exit;
}
echo 'Bạn đã đăng nhập';
?>
Lưu thông tin người dùng trong Session
Session có thể lưu những dữ liệu cần sử dụng xuyên suốt một phiên làm việc, chẳng hạn mã người dùng, tên hiển thị hoặc vai trò tài khoản. Nhờ đó, các trang khác nhau có thể lấy lại thông tin cần thiết mà không phải yêu cầu người dùng gửi lại sau mỗi lần chuyển trang.
Chỉ nên lưu những dữ liệu thực sự cần thiết. Các thông tin nhạy cảm hoặc dữ liệu lớn không nên tùy tiện đưa vào Session. Với thông tin có thể thay đổi trong cơ sở dữ liệu, website cũng nên cân nhắc lấy dữ liệu mới nhất thay vì phụ thuộc hoàn toàn vào giá trị đã lưu.
<?php
session_start();
$_SESSION['user_id'] = 125;
$_SESSION['username'] = 'nguyenan';
$_SESSION['role'] = 'member';
echo $_SESSION['username'];
?>
Session dùng để lưu giỏ hàng và dữ liệu tạm thời
Session cũng rất hữu ích với những dữ liệu chỉ cần tồn tại trong thời gian ngắn, chẳng hạn giỏ hàng của khách chưa đăng nhập, lựa chọn bộ lọc hoặc thông báo sau khi thực hiện một thao tác.
Với giỏ hàng, website có thể lưu mã sản phẩm và số lượng trong Session để người dùng tiếp tục mua sắm khi chuyển qua nhiều trang. Khi khách đăng nhập hoặc hoàn tất đơn hàng, dữ liệu có thể được xử lý và đồng bộ với cơ sở dữ liệu theo logic của website.
<?php
session_start();
$_SESSION['cart'][101] = 2;
$_SESSION['cart'][205] = 1;
echo $_SESSION['cart'][101];
?>
Lời kết
Cảm ơn các bạn đã tham khảo bài viết Session trong PHP.
- 0 Bình luận
Email, Điện thoại của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *