Hướng dẫn what is session in php how it works? - phiên trong php là gì nó hoạt động 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.



Bắt đầu một phiên

Hướng dẫn what is session in php how it works? - phiên trong php là gì nó hoạt động như thế nào?

& nbsp; hình ảnh mmustafabozdemir/getty

Trong PHP, một phiên cung cấp một cách để lưu trữ tùy chọn khách truy cập trang web trên một máy chủ web dưới dạng các biến có thể được sử dụng trên nhiều trang. Không giống như cookie, thông tin biến không được lưu trữ trên máy tính của người dùng. Thông tin được lấy từ máy chủ web khi phiên & nbsp; được mở ở đầu mỗi trang web. Phiên hết hạn khi trang web bị đóng.

Một số thông tin, chẳng hạn & nbsp; như tên người dùng và thông tin xác thực, được lưu tốt hơn trong cookie vì chúng cần thiết trước khi trang web được truy cập. Tuy nhiên, các phiên cung cấp bảo mật tốt hơn cho thông tin cá nhân cần thiết sau khi trang web ra mắt và họ cung cấp một mức độ tùy biến cho khách truy cập vào trang web.

Gọi ví dụ này mã MyPage.php.

Điều đầu tiên mã ví dụ này là mở phiên bằng & nbsp; session_start () & nbsp; function. Sau đó, nó đặt các biến phiên, màu sắc, kích thước và hình dạng có màu đỏ, nhỏ và tròn tương ứng.

Chỉ như & nbsp; với cookie, mã session_start () phải nằm trong tiêu đề của mã và bạn không thể gửi bất cứ thứ gì đến trình duyệt trước nó. Tốt nhất là chỉ cần đặt nó trực tiếp sau & nbsp;

Phiên đặt một cookie nhỏ trên máy tính của người dùng để làm chìa khóa. Nó chỉ là một chìa khóa; Không có thông tin cá nhân được bao gồm trong cookie. Máy chủ web tìm khóa đó khi người dùng nhập URL cho một trong các trang web được lưu trữ của nó. Nếu máy chủ tìm thấy khóa, phiên và thông tin mà nó chứa sẽ được mở cho trang đầu tiên của trang web. Nếu máy chủ không tìm thấy chìa khóa, người dùng sẽ tiến hành trang web, nhưng thông tin được lưu trên máy chủ không được truyền vào trang web.

Sử dụng các biến phiên

Mỗi trang trên trang web cần truy cập vào thông tin được lưu trữ trong phiên phải có chức năng & nbsp; session_start () được liệt kê ở đầu mã cho trang đó. & nbsp; Lưu ý rằng các giá trị cho các biến không được chỉ định trong mã.

Gọi mã này là MyPage2.php.

Tất cả các giá trị được lưu trữ trong mảng $ _Session, được truy cập ở đây. Một cách khác để hiển thị điều này là chạy mã này:

Bạn cũng có thể lưu trữ một mảng trong mảng phiên. Quay lại tệp MyPage.php của chúng tôi và chỉnh sửa nó một chút để thực hiện điều này:

Bây giờ chúng ta hãy chạy điều này trên MyPage2.php để hiển thị thông tin mới của chúng tôi:

Sửa đổi hoặc xóa một phiên

Mã này & nbsp; trình bày cách chỉnh sửa hoặc xóa các biến phiên riêng lẻ & nbsp; hoặc toàn bộ phiên. Để thay đổi một biến phiên, bạn chỉ cần đặt lại nó thành một thứ khác bằng cách gõ ngay trên nó. Bạn có thể sử dụng & nbsp; unset () & nbsp; để xóa một biến hoặc sử dụng & nbsp; session_unset () & nbsp; để xóa tất cả các biến cho một phiên. Bạn cũng có thể sử dụng & nbsp; session_destroy () & nbsp; để phá hủy phiên hoàn toàn.

Theo mặc định, một phiên kéo dài cho đến khi người dùng đóng trình duyệt của mình. Tùy chọn này có thể được thay đổi trong tệp php.ini trên máy chủ web bằng cách thay đổi 0 trong phiên.cookie_lifetime = 0 thành số giây bạn muốn phiên kéo dài hoặc bằng cách sử dụng session_set_cookie_params ().

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 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ủ.

Việc sử dụng phiên bắt đầu trong PHP là gì?

session_start () tạo một phiên hoặc tiếp tục phần hiện tại dựa trên số nhận dạng phiên được truyền qua yêu cầu GET hoặc POST, hoặc được chuyển qua cookie.Khi session_start () được gọi hoặc khi phiên tự động bắt đầu, PHP sẽ gọi mở và đọc phiên xử lý.creates a session or resumes the current one based on a session identifier passed via a GET or POST request, or passed via a cookie. When session_start() is called or when a session auto starts, PHP will call the open and read session save handlers.

PHP có thể xử lý bao nhiêu phiên?

Các phiên PHP là tệp (theo mặc định) dựa trên tệp, vì vậy bạn có thể có nhiều trong số chúng có thể phù hợp với đĩa của máy chủ của bạn.Lưu câu trả lời này.Hiển thị hoạt động trên bài viết này.Không, điều này chính xác có nghĩa là không thể có hơn 30 kết nối đồng thời.there can't be more than 30 simultaneous connections.