Session 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ư một cookie, thông tin được lưu trữ trên server, chứ không được lưu trữ trên máy tính người dùng.
Nội dung chính
Session trong PHP là gì?
Khi bạn làm việc với một ứng dụng, bạn mở nó, thực hiện một số thay đổi, và sau đó bạn đóng nó lại. Điều này giống như một phiên (session). Máy tính biết bạn là ai. Nó biết khi 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 hoặc bạn làm gì, 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 được sử dụng trên nhiều trang (ví dụ: tên người dùng, sở thích, v.v.). Theo mặc định, các biến session tồn tại cho đến khi người dùng đóng trình duyệt.
Vì thế; Biến phiên giữ thông tin về một người dùng duy nhất và có sẵn cho tất cả các trang trong một ứng dụng.
Bắt đầu một session trong PHP
Hàm session_start() được sử dụng để bắt đầu một session.
Biến session được đặt bằng biến toàn cục PHP: $_SESSION.
Bây giờ, hãy tạo một trang mới có tên là "session-trong-php-1.php". Trong trang này, chúng tôi bắt đầu một PHP session mới và thiết lập một số biến session:
File: "session-trong-php-1.php"
<?php // bắt đầu session session_start(); ?> <!DOCTYPE html> <html> <body> <?php // Tạo biến session $_SESSION["user_id"] = "TT123456"; $_SESSION["username"] = "david123"; echo "Các biến session đã được tạo."; ?> </body> </html>
Kết quả:
Các biến session đã được tạo.
Đọc giá trị biến session trong PHP
Tiếp theo, chúng ta tạo một trang khác gọi là "session-trong-php-2.php". Từ trang này, chúng ta sẽ truy cập thông tin session mà chúng ta đã tạo ra trên trang đầu tiên ("session-trong-php-1.php").
Lưu ý rằng các biến session không được chuyển riêng lẻ đến từng trang mới, thay vào đó chúng được truy cập từ session mà chúng ta khai báo ở đầu mỗi trang (session_start()) và các giá trị biến session được lưu trữ trong biến toàn cầu $_SESSION:
File: "session-trong-php-2.php"
<?php // bắt đầu session session_start(); ?> <!DOCTYPE html> <html> <body> <?php // hiển thị các biến session được tạo ở ví dụ trước echo "user_id là: " . $_SESSION["user_id"] . "<br>"; echo "username là: " . $_SESSION["username"]; ?> </body> </html>
Kết quả:
user_id là: TT123456 username là: david123
Để in tất cả các biến session, sử dụng lệnh sau:
<?php print_r($_SESSION); ?>
Thay đổi giá trị biến session trong PHP
Để thay đổi biến session, chỉ ghi đè lên biến đó:
File: "session-trong-php-3.php"
<?php // bắt đầu session session_start(); ?> <!DOCTYPE html> <html> <body> <?php // thay đổi biến session được tạo ở ví dụ trước $_SESSION["username"] = "viettuts.vn"; print_r($_SESSION); ?> </body> </html>
Kết quả:
Array ( [user_id] => TT123456 [username] => viettuts.vn )
Xóa biến session trong PHP
Để xóa tất cả các biến session toàn cầu hãy sử dụng session_unset() và session_destroy():
File: "session-trong-php-4.php"
<?php session_start(); ?> <!DOCTYPE html> <html> <body> <?php // xóa tất cả các biến session session_unset(); session_destroy(); print_r($_SESSION); ?> </body> </html>
Kết quả:
Array ( )
Session hoạt động như thế nào? Làm sao để biết nó là tôi?
Hầu hết các session đều thiết lập một user-key trên máy tính của người dùng giống như sau: 765487cf34ert8dede5a562e4f3a7e12. Sau đó, khi một phiên được mở trên một trang khác, nó sẽ quét máy tính cho một user-key. Nếu phù hợp, nó sẽ truy cập vào phiên đó, nếu không, nó sẽ bắt đầu một phiên mới.