Session là gì? Sử dụng session trong PHP

Đây là bài 43/53 bài của series môn học Lập trình Web PHP

Trong bài này, chúng ta sẽ tìm hiểu về session trong PHP. Để học tốt bài này, các bạn cần đọc lại bài Cài đặt môi trường lập trình Web PHP với XAMPP để biết cách chạy ứng dụng web PHP với XAMPP.

1. Session là gì?

Session là một cách để lưu trữ thông tin được sử dụng trên nhiều trang (page) của một website. Khác với cookie, session chỉ được lưu trữ trên web server.

Session là gì?

Khi truy cập một website, user có thể chuyển request từ trang này sang trang khác. Ví dụ, user vào trang login để đăng nhập. Sau đó, user vào trang product để mua sản phẩm. Thông tin user login phải được lưu trữ lại để tránh việc user phải đăng nhập lại khi qua trang khác.

Session giúp giải quyết vấn đề này bằng cách lưu trữ thông tin user để sử dụng trên nhiều trang như username, product_id,… Mặc định, các session sẽ tồn tại cho đến khi user đóng trình duyệt.

Trong PHP, các session được tạo và lưu trữ trong một folder tạm. Folder này được thiết lập trong file php.ini (mở file php.ini xem hướng dẫn ở phần Thay đổi default timezone trong PHP) với cấu hình session.save_path. Mặc định, session.save_path="C:\xampp\tmp".

2. Bắt đầu một session trong PHP

Trong PHP, chúng ta sử dụng hàm session_start() để bắt đầu một session. Tất cả những dữ liệu trong session được lưu trữ bởi biến mảng $_SESSION.

<?php
// Start the session
session_start();
?>
<html>
  <head>
    <title>Session in PHP</title>
  </head>
<body>
  <?php
    // Set session variables
    $_SESSION["domainname"] = "gochocit.com";
    $_SESSION["numberpost"] = "410";
    echo "Session variables are set.";
  ?>
  <br>
  <a href="session1.php">session1 page</a>
  <br>
  <a href="session2.php">session2 page</a>
</body>
</html>

Trong ví dụ trên, chúng ta gọi hàm session_start() để bắt đầu một session. Sau đó, một số giá trị được lưu trong session bằng biến mảng $_SESSION. Và session1 pagesession2 page là các trang khác trong website.

Lưu ý: Hàm session_start() phải được gọi đầu tiên trong file php, trước thẻ <html>.

3. Lấy các giá trị lưu trong session với PHP

session1 page, chúng ta sẽ lấy các giá trị được lưu trong session.

<?php
// Start the session
session_start();
?>
<html>
  <head>
    <title>Session1 page in PHP</title>
  </head>
<body>
  <?php
    echo "<b>Domain name is</b> " . $_SESSION["domainname"] . ".<br>";
    echo "<b>Number of post is</b> " . $_SESSION["numberpost"] . ".<br>";
  ?>
</body>
</html>

Chúng ta có thể xem tất cả giá trị được lưu trong session bằng các in ra biến mảng $_SESSION.

<?php
// Start the session
session_start();
?>
<html>
  <head>
    <title>Session2 page in PHP</title>
  </head>
<body>
  <?php
    print_r($_SESSION);
    echo "<br>session id: ".session_id();
  ?>
</body>
</html>
Kết quả
Array ( 
[domainname] => gochocit.com 
[numberpost] => 410 
)
session id: 58j58aoogh7mktkmkohce6npns

Khi một user truy cập đến website và bắt đầu một session thì session đó sẽ được gán một session id. Sử dụng hàm session_id() để lấy session id của session hiện tại.

4. Thay đổi và xóa session trong PHP

Để thay đổi các giá trị lưu trong session, chúng ta chỉ cần gán lại lại giá trị cho các biến lưu trong session.

<?php
// Start the session
session_start();
?>
<html>
  <head>
    <title>Session2 page in PHP</title>
  </head>
<body>
  <?php
    // to change a session variable, just overwrite it
    $_SESSION["domainname"] = "en.gochocit.com";
    print_r($_SESSION);
  ?>
</body>
</html>

Để xóa tất cả giá trị lưu trong session và hủy luôn session thì sử dụng hàm session_unset()session_destroy().

<?php
// Start the session
session_start();
?>
<html>
  <head>
    <title>Session2 page in PHP</title>
  </head>
<body>
  <?php
    // remove all session variables
    session_unset();

    // destroy the session
    session_destroy();
  ?>
</body>
</html>

Chúng ta vừa tìm hiểu cách sử dụng session trong PHP. Các bạn cần nắm vững các kiến thức này vì chúng sẽ được sử dụng rất nhiều trong lập trình web.

5/5 - (1 bình chọn)
Bài trước và bài sau trong môn học<< Cookie là gì? Sử dụng cookie trong PHPXử lý dữ liệu JSON trong PHP >>
Chia sẻ trên mạng xã hội:

Để lại một bình luận

Lưu ý:

1) Vui lòng bình luận bằng tiếng Việt có dấu.

2) Khuyến khích sử dụng tên thật và địa chỉ email chính xác.

3) Mọi bình luận trái quy định sẽ bị xóa bỏ.