Hướng dẫn how do you create session in php? - làm thế nào để bạn tạo phiên trong php?


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 hướng dẫn này, bạn sẽ tìm hiểu cách lưu trữ một số dữ liệu nhất định trên máy chủ trên cơ sở tạm thời bằng phiên PHP.

Phiên là gì

Mặc dù bạn có thể lưu trữ dữ liệu bằng cách sử dụng cookie nhưng nó có một số vấn đề bảo mật. Vì cookie được lưu trữ trên máy tính của người dùng, người tấn công có thể dễ dàng sửa đổi nội dung cookie để chèn dữ liệu có hại trong ứng dụng của bạn có thể phá vỡ ứng dụng của bạn.

Ngoài ra, mỗi khi trình duyệt yêu cầu URL đến máy chủ, tất cả dữ liệu cookie cho một trang web sẽ tự động gửi đến máy chủ trong yêu cầu. Điều đó có nghĩa là nếu bạn đã lưu trữ 5 cookie trên hệ thống người dùng, mỗi cookie có kích thước 4kb, trình duyệt cần tải lên 20kb dữ liệu mỗi khi người dùng xem một trang, có thể ảnh hưởng đến hiệu suất của trang web của bạn.

Bạn có thể giải quyết cả hai vấn đề này bằng cách sử dụng phiên PHP. Phiên Php lưu trữ dữ liệu trên máy chủ thay vì máy tính của người dùng. Trong môi trường dựa trên phiên, mọi người dùng được xác định thông qua một số duy nhất được gọi là định danh phiên hoặc SID. ID phiên duy nhất này được sử dụng để liên kết mỗi người dùng với thông tin riêng của họ trên máy chủ như email, bài đăng, v.v.

Mẹo: ID phiên được tạo ngẫu nhiên bởi động cơ PHP gần như không thể đoán được. Hơn nữa, vì dữ liệu phiên được lưu trữ trên máy chủ, nên nó không phải được gửi với mọi yêu cầu của trình duyệt. The session IDs are randomly generated by the PHP engine which is almost impossible to guess. Furthermore, because the session data is stored on the server, it doesn't have to be sent with every browser request.

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

Trước khi bạn có thể lưu trữ bất kỳ thông tin nào trong các biến phiên, trước tiên bạn phải bắt đầu phiên. Để bắt đầu một phiên mới, chỉ cần gọi chức năng PHP session_start(). Nó sẽ tạo một phiên mới và tạo ID phiên duy nhất cho người dùng.

Mã PHP trong ví dụ dưới đây chỉ đơn giản là bắt đầu một phiên mới.

Hàm session_start() trước tiên kiểm tra xem liệu một phiên đã tồn tại bằng cách tìm kiếm sự hiện diện của ID phiên. Nếu nó tìm thấy một, tức là nếu phiên đã được bắt đầu, nó sẽ thiết lập các biến phiên và nếu không, nó sẽ bắt đầu một phiên mới bằng cách tạo ID phiên mới.

Lưu ý: Bạn phải gọi chức năng session_start() ở đầu trang, tức là trước khi bất kỳ đầu ra nào được tạo bởi tập lệnh của bạn trong trình duyệt, giống như bạn làm trong khi đặt cookie có hàm

3. You must call the session_start() function at the beginning of the page i.e. before any output generated by your script in the browser, much like you do while setting the cookies with
3 function.


Lưu trữ và truy cập dữ liệu phiên

Bạn có thể lưu trữ tất cả dữ liệu phiên của mình dưới dạng các cặp giá trị khóa trong mảng Superglobal

4. Dữ liệu được lưu trữ có thể được truy cập trong suốt thời gian của một phiên. Hãy xem xét tập lệnh sau, tạo ra một phiên mới và đăng ký hai biến phiên.

Để truy cập dữ liệu phiên, chúng tôi đặt trên ví dụ trước đây từ bất kỳ trang nào khác trên cùng một miền web - chỉ cần tạo lại phiên bằng cách gọi session_start() và sau đó chuyển khóa tương ứng cho mảng liên kết

6.

Mã PHP trong ví dụ trên tạo ra đầu ra sau.

Xin chào, Peter Parker

Lưu ý: Để truy cập dữ liệu phiên trong cùng một trang, không cần phải tạo lại phiên vì nó đã được bắt đầu ở đầu trang. To access the session data in the same page there is no need to recreate the session since it has been already started on the top of the page.


Phá hủy một phiên

Nếu bạn muốn xóa một số dữ liệu phiên nhất định, chỉ cần tháo phím tương ứng của mảng liên kết

6, như được hiển thị trong ví dụ sau:

Tuy nhiên, để phá hủy một phiên hoàn toàn, chỉ cần gọi hàm session_destroy(). Hàm này không cần bất kỳ đối số nào và một cuộc gọi duy nhất phá hủy tất cả dữ liệu phiên.

Lưu ý: Trước khi phá hủy phiên với chức năng session_destroy(), trước tiên bạn cần tạo lại môi trường phiên nếu chưa có chức năng session_start(), để có một cái gì đó để phá hủy. Before destroying a session with the session_destroy() function, you need to first recreate the session environment if it is not already there using the session_start() function, so that there is something to destroy.

Mỗi phiên PHP có giá trị thời gian chờ - thời lượng, được đo bằng giây - xác định thời gian một phiên sẽ tồn tại trong trường hợp không có bất kỳ hoạt động người dùng nào. Bạn có thể điều chỉnh thời gian chờ này bằng cách thay đổi giá trị của biến

1 trong tệp cấu hình PHP (
2).

Làm cách nào để tạo một phiên mới?

Để tạo phiên mới hoặc có quyền truy cập vào phiên hiện có, hãy sử dụng phương thức httpservletRequest GetSession (), như được hiển thị trong ví dụ sau: HTTPSession mySession = request. GetSession ();use the HttpServletRequest method getSession(), as shown in the following example: HttpSession mySession = request. getSession();

Phiên trong PHP với ví dụ là gì?

Phiên Php được sử dụng để lưu trữ và truyền thông tin từ trang này sang trang khác tạm thời (cho đến khi người dùng đóng trang web).Kỹ thuật phiên PHP được sử dụng rộng rãi trong các trang web mua sắm, nơi chúng tôi cần lưu trữ và truyền thông tin giỏ hàng, ví dụ:Tên người dùng, mã sản phẩm, tên sản phẩm, giá sản phẩm, vv từ trang này sang trang khác.used to store and pass information from one page to another temporarily (until user close the website). PHP session technique is widely used in shopping websites where we need to store and pass cart information e.g. username, product code, product name, product price etc from one page to another.

Làm cách nào để tạo mã phiên?

Để bắt đầu/tạo một phiên mới trong ngôn ngữ PHP, function session_start () sẽ được sử dụng.Đối với người dùng, nó sẽ tạo ra một trong các ID phiên duy nhất.Hàm session_start () sẽ tạo một phiên mới chỉ bằng PHP chỉ khi phiên chưa có trong máy chủ.function session_start() will be used. For the user, it will generate one of the unique session ID. The function session_start() will create a new session using PHP only if the session is not already present in the server.

Phiên và tạo phiên trong PHP là gì?

Bắt đầu một phiên PHP trước khi bạn có thể lưu trữ bất kỳ thông tin nào trong các biến phiên, trước tiên bạn phải bắt đầu phiên.Để bắt đầu một phiên mới, chỉ cần gọi hàm Php session_start ().Nó sẽ tạo một phiên mới và tạo ID phiên duy nhất cho người dùng.To begin a new session, simply call the PHP session_start() function. It will create a new session and generate a unique session ID for the user.