Hướng dẫn why session_start () is used in php? - tại sao session_start () được sử dụng trong php?



Định nghĩa và cách sử dụng

Phiên hoặc xử lý phiên là một cách để cung cấp dữ liệu trên các trang khác nhau của ứng dụng web. Hàm session_start () được sử dụng để bắt đầu một phiên mới hoặc, tiếp tục một phiên hiện có.session_start() function is used to start a new session or, resume an existing one.

Cú pháp

session_start([$options]);

Thông số

Sr.NoMô tả về Thông Số
1

array(Optional)

Đây là một mảng đại diện cho một tập hợp các tùy chọn phiên.

Trả về giá trị

Hàm này trả về một giá trị boolean là đúng nếu phiên bắt đầu thành công và sai nếu không thành công.

Phiên bản PHP

Chức năng này lần đầu tiên được giới thiệu trong Php phiên bản 4 và hoạt động trong tất cả các phiên bản sau.

ví dụ 1

Ví dụ sau đây cho thấy việc sử dụng hàm session_start ().session_start() function.

  
   
      Setting up a PHP session
      
   
      
       
  

Một lần thực hiện tệp HTML ở trên, nó sẽ hiển thị thông báo sau -

You have visited this page 1 times in this session.

Số trong tin nhắn tiếp tục thay đổi dựa trên số lần bạn làm mới trang mà không đóng trình duyệt. Ví dụ: nếu bạn làm mới 10 lần, thì cùng một trang sẽ hiển thị thông báo sau.

You have visited this page 16 times in this session.

Ví dụ 2

Sau đây là một ví dụ khác về chức năng này, ở đây chúng tôi có hai trang từ cùng một ứng dụng trong cùng một phiên -

session_page1.htm


   
      

Điều này sẽ tạo ra đầu ra sau -

Hướng dẫn why session_start () is used in php? - tại sao session_start () được sử dụng trong php?

Khi nhấp vào tiếp theo, tệp sau được thực thi.Next the following file is executed.

session_page2.htm

   
   
      Second Page
   
   
      ";
         print($_SESSION['age']);
      ?>   
      

Điều này sẽ tạo ra đầu ra sau -

Krishna
30

Khi nhấp vào tiếp theo, tệp sau được thực thi.

Ví dụ 3

   
   
      Setting up a PHP session
      
   
       86400,'read_and_close'  => true];
         session_start($options);   
      ?>  
      

php_function_reference.htm


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ụ

Thí dụ
// Start the session
session_start();
?>


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

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ụ

Thí dụ
session_start();
?>


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

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ụ

Thí dụ
session_start();
?>


Thí dụ
print_r($_SESSION);
?>

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ụ

Thí dụ
session_start();
?>


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

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ụ

Thí dụ
session_start();
?>


Thí dụ
// remove all session variables
session_unset();

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

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.



Hàm session_start () nên được sử dụng ở đâu?

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. Đối với câu hỏi của bạn, bạn có thể bắt đầu phiên bất cứ nơi nào bạn muốn, nhưng hãy cẩn thận phiên đó phải được bắt đầu trước bất kỳ đầu ra nào. Vì vậy, nó được coi là một cách tiếp cận hợp lý để bắt đầu phiên ở đầu một trang.Before any HTML tags. As for your question you can start session wherever you want, but beware that session must be started before any output. So it is considered a reasonable approach to start session at the top of a page.

Tại sao bạn phải gọi session_start () trước bất kỳ đầu ra nào?

Điều quan trọng là phải nhớ rằng session_start () phải được gọi trước khi bất kỳ đầu ra nào được gửi đến trình duyệt. Đây là một nguồn lỗi phổ biến, ví dụ nếu tệp PHP có một dòng trống ở đầu. session_name () thay đổi tên phiên hiện tại và tên của cookie phiên được gửi đến trình duyệt từ xa.This is a common source of errors, for example if the PHP file has an empty line at the beginning. session_name() changes the current Session's name and the name of the Session Cookie sent to the remote browser.

Việc sử dụng các hàm session_start () và session_destroy () trong PHP là gì?

Chức năng session_destroy (): Nó phá hủy toàn bộ phiên Thay vì phá hủy các biến.KHEN Session_Start () được gọi, PHP đặt cookie phiên trong trình duyệt.Chúng ta cũng cần xóa cookie để phá hủy hoàn toàn phiên.Ví dụ: Ví dụ này được sử dụng để phá hủy phiên.It destroys the whole session rather destroying the variables. When session_start() is called, PHP sets the session cookie in browser. We need to delete the cookies also to completely destroy the session. Example: This example is used to destroying the session.

Tôi có cần gọi session_start trên mỗi trang không?

Nó phải có trên mỗi trang bạn dự định sử dụng.Các biến có trong phiên, ví dụ như tên người dùng và màu yêu thích được đặt với $ _Session, một biến toàn cầu.Trong ví dụ này, hàm session_start được định vị sau khi nhận xét không in nhưng trước bất kỳ HTML nào.. The variables contained in the session—such as username and favorite color—are set with $_SESSION, a global variable. In this example, the session_start function is positioned after a non-printing comment but before any HTML.