Session trong PHP

Một Session(phiên) là một cách để lưu trữ thông tin (trong các biến) để được sử dụng trên nhiều trang.

Không giống như cookie, thông tin không được lưu trữ trên máy tính của người dùng.

Mục Lục:

1. Session là gì?

Khi bạn làm việc với một ứng dụng, bạn mở nó, làm một số thay đổi, và sau đó bạn đóng nó. Điều này giống như một phiên họp. Máy tính biết bạn là ai. Nó biết khi nào bạn bắt đầu ứng dụng và khi bạn kết thúc. Nhưng trên internet có một vấn đề: máy chủ web không biết bạn là ai hay bạn làm gì, bởi vì địa chỉ HTTP không duy trì trạng thái.

Các biến Session giải quyết vấn đề này bằng cách lưu trữ thông tin người dùng để sử dụng trên nhiều trang (ví dụ như tên người dùng, màu sắc yêu thích, vân vân). Theo mặc định, biến session cho đến khi người dùng đóng trình duyệt.

2. Tạo Session trong PHP

Một phiên được bắt đầu bằng chức năng session_start().

Các biến session được thiết lập với biến toàn cầu PHP: $_SESSION

        // Start the session
        session_start();
    

Lưu ý: session_start() phải nằm ở vị trí đầu file. Trước bất kỳ thẻ HTML nào.

3. Truy xuất Session trong PHP

Ta tạo trang "demo_session1.php" có nội dung như sau:

        session_start();

        $_SESSION["favcolor"] = "green";
        $_SESSION["favanimal"] = "cat";
        echo "Session variables are set.";
    
Xem ví dụ »

Tiếp theo ta tạo trang "demo_session2.php". Từ trang này "demo_session2.php" ta sẽ truy cập thông tin session ở trang "demo_session1.php"

        session_start();

        echo "Favorite color is " . $_SESSION["favcolor"] . ".
"; echo "Favorite animal is " . $_SESSION["favanimal"] . ".";
Xem ví dụ »

4. Cập nhật Session trong PHP

Để thay đổi một biến session, chỉ cần ghi đè lên nó:

        session_start();

        $_SESSION["favcolor"] = "yellow";
        print_r($_SESSION);
    
Xem ví dụ »

5. Xóa Session trong PHP

Để xóa session ta sử dụng unset(), session_unset () và session_destroy ()

unset(): Xóa 1 session được chỉ định. Ví dụ: unset($_SESSION['demo']);

session_unset(): Xóa toàn bộ biến session

session_destroy(): Xóa phiên làm việc