Hướng dẫn what does session_start () do in php? - session_start() làm gì 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.





Đị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.

<?php
   //Starting the session
   session_start();   
   if( isset( $_SESSION['counter'] ) ) {
      $_SESSION['counter'] += 1;
   } else {
      $_SESSION['counter'] = 1;
   }	
   $msg = "You have visited this page ". $_SESSION['counter'];
   $msg .= "in this session.";
?>
<html>  
   <head>
      <title>Setting up a PHP session</title>
   </head>   
   <body>
      <?php  echo ( $msg ); ?>
   </body>    
</html>  

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

<?php
   if(isset($_POST['SubmitButton'])){ 
      //Starting the session	
      session_start();
      $_SESSION['name'] = $_POST['name'];
      $_SESSION['age']  = $_POST['age'];
   }
?>
<html>
   <body>
      <form action="#" method="post">
         <br?> <label for="fname">Enter the values click Submit and click on Next</label?> <label for="fname"?>Name:</label>
         <input type="text" id="name" name="name"><br><br>
         <label for="lname"?>Age:
         <input type="text" id="age" name="age"><br?><br>           
         <input type="submit" name="SubmitButton"/?>
         <?php echo '<br?><br /?><a href="session_page2.htm">Next</a>'; ?>
      </form>
   </body>
</html>

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

Hướng dẫn what does session_start () do in php? - session_start() làm gì 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

<html>   
   <head>
      <title>Second Page</title>
   </head>
   <body>
      <?php
         //Session started
         session_start();
         print($_SESSION['name']); 
         echo "<br>";
         print($_SESSION['age']);
      ?>   
   </body>   
</html>

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

Krishna
30

Ví dụ 3

Bạn có thể chuyển mảng tùy chọn cho chức năng này như được hiển thị bên dưới -

<html>   
   <head>
      <title>Setting up a PHP session</title>
   </head>   
   <body>
      <?php
         //Starting the session
         $options = ['cookie_lifetime' => 86400,'read_and_close'  => true];
         session_start($options);   
      ?>  
   </body>   
</html>

php_function_reference.htm

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

Hàm php session_start () và session_destroy () là gì?

session_destroy () phá hủy tất cả các dữ liệu được liên kết với phiên hiện tại.Nó không hủy bỏ bất kỳ biến toàn cầu nào liên quan đến phiên hoặc mở cookie phiên.Để sử dụng lại các biến phiên, session_start () phải được gọi.Lưu ý: Bạn không phải gọi session_destroy () từ mã thông thường.. It does not unset any of the global variables associated with the session, or unset the session cookie. To use the session variables again, session_start() has to be called. Note: You do not have to call session_destroy() from usual code.

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.

Làm cách nào để nhận ID phiên hiện tại trong PHP?

session_id () được sử dụng để nhận hoặc đặt ID phiên cho phiên hiện tại.SID hằng số cũng có thể được sử dụng để truy xuất tên và ID phiên hiện tại như một chuỗi phù hợp để thêm vào URL. is used to get or set the session id for the current session. The constant SID can also be used to retrieve the current name and session id as a string suitable for adding to URLs.