Một phiên là một cách để lưu trữ thông tin [trong các biến] sẽ đượ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 người dùng.
Phiên 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ó. Điều này giống như một phiên. 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 phiên giải quyết vấn đề này bằng cách lưu trữ thông tin người dùng sẽ được sử dụng trên nhiều trang [ví dụ: tên người dùng, màu yêu thích, v.v.]. Theo mặc định, các biến phiên kéo dài cho đến khi người dùng đóng trình duyệt.
Vì thế; Các biến phiên chứa 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.
Mẹo: Nếu bạn cần lưu trữ vĩnh viễn, bạn có thể muốn lưu trữ dữ liệu trong cơ sở dữ liệu. If you need a permanent storage, you may want to store the data in a database.
Bắt đầu một phiên PHP
Một phiên được bắt đầu với chức năng session_start[]
.
Các biến phiên được đặt với biến toàn cầu PHP: $ _Session.
Bây giờ, hãy tạo một trang mới có tên là "demo_session1.php". Trong trang này, chúng tôi bắt đầu một phiên PHP mới và đặt một số biến phiên:
Thí dụ
Chạy ví dụ »
Lưu ý: Hàm session_start[]
phải là điều đầu tiên trong tài liệu của bạn. Trước bất kỳ thẻ HTML. The session_start[]
function must be the very first thing in your document. Before any HTML tags.
Nhận các giá trị biến phiên PHP
Tiếp theo, chúng tôi tạo một trang khác có tên là "demo_session2.php". Từ trang này, chúng tôi sẽ truy cập thông tin phiên chúng tôi đặt trên trang đầu tiên ["demo_session1.php"].
Lưu ý rằng các biến phiên không được truyền riêng cho mỗi trang mới, thay vào đó chúng được lấy từ phiên chúng tôi mở ở đầu mỗi trang [session_start[]
].
Cũng lưu ý rằng tất cả các giá trị biến phiên được lưu trữ trong biến $ _Session toàn cầu:
Thí dụ
Chạy ví dụ »
Lưu ý: Hàm session_start[]
phải là điều đầu tiên trong tài liệu của bạn. Trước bất kỳ thẻ HTML.
Thí dụ
Chạy ví dụ »
Lưu ý: Hàm session_start[]
phải là điều đầu tiên trong tài liệu của bạn. Trước bất kỳ thẻ HTML.
Nhận các giá trị biến phiên PHP
Tiếp theo, chúng tôi tạo một trang khác có tên là "demo_session2.php". Từ trang này, chúng tôi sẽ truy cập thông tin phiên chúng tôi đặt trên trang đầu tiên ["demo_session1.php"].
Lưu ý rằng các biến phiên không được truyền riêng cho mỗi trang mới, thay vào đó chúng được lấy từ phiên chúng tôi mở ở đầu mỗi trang [session_start[]
].
Thí dụ
Chạy ví dụ »
Lưu ý: Hàm session_start[]
phải là điều đầu tiên trong tài liệu của bạn. Trước bất kỳ thẻ HTML.
Nhận các giá trị biến phiên PHP
Thí dụ
Chạy ví dụ »
Lưu ý: Hàm session_start[]
phải là điều đầu tiên trong tài liệu của bạn. Trước bất kỳ thẻ HTML.
Trong tình huống chung:
- ID phiên được gửi cho người dùng khi phiên của anh ấy được tạo.
- Nó được lưu trữ trong cookie [được gọi, theo mặc định,
PHPSESSID
] - Cookie đó được trình duyệt gửi đến máy chủ với mỗi yêu cầu
- Máy chủ [PHP] sử dụng cookie đó, chứa session_id, để biết tệp nào tương ứng với người dùng đó.
Dữ liệu trong các tệp phiên là nội dung của $_SESSION
, được nối tiếp [nghĩa là được biểu thị dưới dạng chuỗi - với một hàm như nối tiếp]; và không cần thiết khi tệp được tải bởi PHP, để điền vào mảng $_SESSION
.
Đôi khi, ID phiên không được lưu trữ trong cookie, nhưng cũng được gửi trong URL - nhưng điều đó khá hiếm, ngày nay.
Để biết thêm thông tin, bạn có thể xem phần xử lý phiên của hướng dẫn sử dụng, cung cấp một số thông tin hữu ích.
Chẳng hạn, có một trang về việc chuyển ID phiên, giải thích cách ID phiên được truyền từ trang này sang trang khác, sử dụng cookie hoặc trong URL - và các tùy chọn cấu hình nào ảnh hưởng đến điều này.