Session trong PHP

Session trong PHP
Session trong PHP

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

Chạy Thử

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

Chạy Thử

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:

Chạy Thử

Ứ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
Trần Thị Vân | Content Creator Web Mới
Trần Thị Vân
Trần Thị Vân là Content Creator tại Web Mới, phụ trách nghiên cứu, biên soạn nội dung và chia sẻ kiến thức về website, SEO, lập trình cùng các xu hướng công nghệ
Đánh giá
Chia sẻ nội dung đánh giá của bạn về Session trong PHP
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 *
Đánh giá của bạn
Tên *
Email
Số điện thoại *
Bình luận, Hỏi đáp
Yêu Cầu Báo Giá
Gửi trang web mẫu cần làm theo, chúng tôi sẽ báo giá đến bạn từ Email (tanlucit09@gmail.com - Bùi Tấn Lực) hoặc Zalo (Lực IT - 0398259259) !