Hướng dẫn session_start() in php - session_start () trong php



Session là một cách để lưu trữ thông tin (trong các biến) được sử dụng trên nhiều trang.

Không giống như một cookie, thông tin được lưu trữ trên server, chứ không được lưu trữ trên máy tính người dùng.


Nội dung chính

  • Session trong PHP là gì?
  • Bắt đầu một session trong PHP
  • Đọc giá trị biến session trong PHP
  • Thay đổi giá trị biến session trong PHP
  • Xóa biến session trong PHP
    • Session hoạt động như thế nào? Làm sao để biết nó là tôi?

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ó lại. Điều này giống như một phiên (session). 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 session giải quyết vấn đề này bằng cách lưu trữ thông tin người dùng được sử dụng trên nhiều trang (ví dụ: tên người dùng, sở thích, v.v.). Theo mặc định, các biến session tồn tại cho đến khi người dùng đóng trình duyệt.

Vì thế; Biến phiên giữ 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.



Bắt đầu một session trong PHP

Hàm session_start() được sử dụng để bắt đầu một session.

Biến session được đặt bằng biến toàn cục PHP: $_SESSION.

Bây giờ, hãy tạo một trang mới có tên là "session-trong-php-1.php". Trong trang này, chúng tôi bắt đầu một PHP session mới và thiết lập một số biến session:

File: "session-trong-php-1.php"









Kết quả:

Các biến session đã được tạo.

Xem kết quả ở tab mới.

Chú ý: Hàm Cácsession_start() phải đặt TRƯỚC thẻ .


Đọc giá trị biến session trong PHP

Tiếp theo, chúng ta tạo một trang khác gọi là "session-trong-php-2.php". Từ trang này, chúng ta sẽ truy cập thông tin session mà chúng ta đã tạo ra trên trang đầu tiên ("session-trong-php-1.php").

Lưu ý rằng các biến session không được chuyển riêng lẻ đến từng trang mới, thay vào đó chúng được truy cập từ session mà chúng ta khai báo ở đầu mỗi trang (session_start()) và các giá trị biến session được lưu trữ trong biến toàn cầu $_SESSION:

File: "session-trong-php-2.php"





";
echo "username là: " . $_SESSION["username"];
?>



Kết quả:

user_id là: TT123456
username là: david123

Xem kết quả ở tab mới.

Chú ý: Hàm Cácsession_start() phải đặt TRƯỚC thẻ .



Đọc giá trị biến session trong PHP

Tiếp theo, chúng ta tạo một trang khác gọi là "session-trong-php-2.php". Từ trang này, chúng ta sẽ truy cập thông tin session mà chúng ta đã tạo ra trên trang đầu tiên ("session-trong-php-1.php").

Lưu ý rằng các biến session không được chuyển riêng lẻ đến từng trang mới, thay vào đó chúng được truy cập từ session mà chúng ta khai báo ở đầu mỗi trang (session_start()) và các giá trị biến session được lưu trữ trong biến toàn cầu $_SESSION:









Kết quả:

Array ( [user_id] => TT123456 [username] => viettuts.vn )

Xem kết quả ở tab mới.


Chú ý: Hàm Cácsession_start() phải đặt TRƯỚC thẻ .

Đọc giá trị biến session trong PHP

Tiếp theo, chúng ta tạo một trang khác gọi là "session-trong-php-2.php". Từ trang này, chúng ta sẽ truy cập thông tin session mà chúng ta đã tạo ra trên trang đầu tiên ("session-trong-php-1.php").









Kết quả:

Xem kết quả ở tab mới.

Chú ý: Hàm Cácsession_start() phải đặt TRƯỚC thẻ .

Đọc giá trị biến session trong PHP



  • Blog
  • Tin tức

31/05/2021 02:01

Nội dung chính ShowShow

  • Khái niệm session trong PHP
  • Quy trình hoạt động của một session trong PHP
  • Bắt đầu một session trong PHP
  • Hủy session trong PHP
  • Cách bật Auto Session trong PHP
  • Session không sử dụng cookie

Có những trường hợp người dùng không cho phép lưu trữ cookie trên máy của họ. Vì vậy, có một phương pháp khác là gửi ID session đến phiên trình duyệt.

Khái niệm session trong PHP

Quy trình hoạt động của một session trong PHP

Khái niệm session trong PHP

Quy trình hoạt động của một session trong PHP

Session trong PHP là một cách để lưu trữ thông tin (trong các biến) để sử dụng trên nhiều trang. Không giống như cookie, các thông tin này không được lưu trữ trên máy tính của người dùng. Cùng tìm hiểu về các session trong PHP và chức năng của nó trong bài viết dưới đây.

Khi bạn làm việc với ứng dụng, bạn sẽ cần thực hiện các thay đổi và sau đó mới đóng lại ứng dụng. Đây sẽ gọi là một phiên hay session trong PHP. Session sẽ cho máy tính biết khi nào bạn bắt đầu ứng dụng và khi nào bạn kết thúc ứng dụng. Tuy vậy, khi hoạt động trên internet, máy chủ web sẽ 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. 

Session trong PHP sẽ giải quyết vấn đề này bằng cách lưu trữ thông tin người dùng sử dụng trên nhiều trang (ví dụ: tên người dùng, màu yêu thích,...) Theo mặc định các biến của session kéo dài cho đến khi người dùng đóng trình duyệt.

  • Vì vậy, có thể kết luận các session trong PHP chứa thông tin về người dùng và có sẵn cho tất cả các trang trong ứng dụng.3c7foj34c3jj973hjkop2fc937e3443.
  • Quy trình hoạt động của một session trong PHP
  • Tệp được tạo tự động trên máy chủ trong thư mục tạm thời được chỉ định và mang tên của số nhận dạng duy nhất có tiền tố là sess_ ie sess_3c7foj34c3jj973hjkop2fc937e3443.

Khi một tập lệnh PHP muốn truy xuất giá trị từ một biến session, PHP sẽ tự động lấy chuỗi định danh session duy nhất từ cookie PHP SESSID và sau đó tìm tệp mang tên đó trong thư mục tạm thời của nó và việc xác thực có thể được thực hiện bằng cách so sánh cả hai giá trị.

Session sẽ kết thúc khi người dùng tắt trình duyệt hoặc rời khỏi trang, máy chủ sẽ kết thúc session sau một khoảng thời gian định trước, thường là sau 30’.

>>> Đọc thêm: PHP XML: Tạo, phân tích cú pháp ví dụ trong PHP XML PHP XML: Tạo, phân tích cú pháp ví dụ trong PHP XML

Bắt đầu một session trong PHP

Một session trong PHP có thể dễ dàng bắt đầu bằng cách gọi hàm session_start (), trước tiên hàm này kiểm tra xem một phiên đã được bắt đầu chưa và nếu chưa có phiên nào được bắt đầu thì nó sẽ bắt đầu một phiên. Bạn nên đặt lệnh gọi tới session_start () ở đầu trang.

Các biến phiên được lưu lữ trong các mảng liên kết được gọi là $_SESSION []. Những biến này có thể được truy cập trong thời gian của một session.

Ví dụ dưới đây bắt đầu một session, sau đó đăng ký một biến được gọi là bộ đếm (counter) được tăng lên mỗi khi trang được truy cập trong phiên.

Tận dụng hàm isset() để kiểm tra xem liệu biến session đã được set hay chưa. Đưa biến dưới đây vào file test.php và tải lại file nhiều lần cho tới khi nhận được kết quả như dưới đây:





      

      Setting up a PHP session

   

      

      

   
  

Kết quả nhận được như sau:

You have visited this page 1in this session.

>>> Đọc thêm: Toán tử bậc ba trong PHP - Tìm hiểu về toán tử bậc 3 trong PHPToán tử bậc ba trong PHP - Tìm hiểu về toán tử bậc 3 trong PHP

Hủy session trong PHP

Một session trong PHP có thể được hủy bằng cách sử dụng hàm session_destroy(). Hàm này không cần bất kỳ thám số nào và một lệnh gọi có thể hủy tất cả các biến session. 

Dưới đây là ví dụ hủy đặt biến duy nhất:

Các biến session đã được tạo.
0

Dưới đây là lệnh hủy tất cả các biến session

Các biến session đã được tạo.
1

Cách bật Auto Session trong PHP

Bạn không cần gọi hàm start_session () để bắt đầu một phiên khi người dùng truy cập trang web của bạn nếu bạn có thể đặt biến session.auto_start thành 1 trong tệp php.ini .

Có những trường hợp người dùng không cho phép lưu trữ cookie trên máy của họ. Vì vậy, có một phương pháp khác là gửi ID session đến phiên trình duyệt.

Ngoài ra, bạn có thể sử dụng hằng số SID được định nghĩa nếu phiên bắt đầu. Nếu  người dùng không gửi một phiên cookie hợp lệ, nó sẽ có dạng session_name=session_id. Nếu không nó sẽ mở rộng một chuỗi đơn. Thêm vào đó, bạn có thể nhúng nó vào URL vô điều kiện.

Ví dụ sau minh họa cách đăng ký một biến và cách liên kết chính xác đến một trang khác bằng SID.

Các biến session đã được tạo.
2

Kết quả:

Các biến session đã được tạo.
3

Kết luận: Trên đây là khái niệm và cách sử dụng session trong PHP. Bên cạnh các thành phần khác, Session trong PHP cũng là yếu tố mà lập trình viên cần để tâm trong quá trình làm việc với PHP. Tìm hiểu thêm về PHP và các ngôn ngữ lập trình khác qua các khóa học lập trình tại Viện công nghệ thông tin T3H. các khóa học lập trình tại Viện công nghệ thông tin T3H.