Hướng dẫn how does session work in php? - phiên làm việc trong php như thế nào?


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ụ

// Start the session
session_start();
?>


// Set session variables
$_SESSION["favcolor"] = "green";
$_SESSION["favanimal"] = "cat";
echo "Session variables are set.";
?>


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ụ

session_start();
?>


// Echo session variables that were set on previous page
echo "Favorite color is " . $_SESSION["favcolor"] . ".
";
echo "Favorite animal is " . $_SESSION["favanimal"] . ".";
?>


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ụ

session_start();
?>


print_r($_SESSION);
?>


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ụ

session_start();
?>


// to change a session variable, just overwrite it
$_SESSION["favcolor"] = "yellow";
print_r($_SESSION);
?>


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ụ

session_start();
?>


// remove all session variables
session_unset();

Chạy ví dụ »
session_destroy();
?>


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.

Phiên hoạt động như thế nào?

Phiên hơi khác nhau. Mỗi người dùng nhận được ID phiên, được gửi lại cho máy chủ để xác thực bằng cookie hoặc bằng cách nhận biến. Các phiên thường tồn tại trong thời gian ngắn, điều này làm cho chúng lý tưởng trong việc tiết kiệm trạng thái tạm thời giữa các ứng dụng. Phiên cũng hết hạn khi người dùng đóng trình duyệt.Each user gets a session ID, which is sent back to the server for validation either by cookie or by GET variable. Sessions are usually short-lived, which makes them ideal in saving temporary state between applications. Sessions also expire once the user closes the browser.
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) rằng 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 đó.

Phiên giải thích với ví dụ là gì?

Phiên là gì?Một phiên là một biến toàn cầu được lưu trữ trên máy chủ.Mỗi phiên được gán một ID duy nhất được sử dụng để truy xuất các giá trị được lưu trữ.Bất cứ khi nào một phiên được tạo, cookie chứa ID phiên duy nhất được lưu trữ trên máy tính của người dùng và được trả về mọi yêu cầu cho máy chủ.a global variable stored on the server. Each session is assigned a unique id which is used to retrieve stored values. Whenever a session is created, a cookie containing the unique session id is stored on the user's computer and returned with every request to the server.

Phiên PHP kéo dài bao lâu?

Php // Máy chủ sẽ giữ dữ liệu phiên trong ít nhất 1 giờ ini_set ('phiên. GC_MAXLIFETIME', 3600);// Mỗi khách hàng nên ghi nhớ ID phiên của họ trong chính xác 1 giờ phiên_set_cookie_params (3600);Chúng tôi đã thảo luận về các chức năng cơ bản được sử dụng để xử lý một phiên.