Các biến phiên được PHP quản lý như thế nào?

HTTP là một giao thức phi trạng thái. Nói cách khác, một trang web không lưu giữ bất kỳ thông tin nào về khách truy cập từ lần truy cập trang này đến lần truy cập trang tiếp theo. Đây là một vấn đề nếu bạn muốn theo dõi từng khách truy cập khi họ điều hướng qua một trang web. Ví dụ: giỏ hàng hoặc ứng dụng ngân hàng trực tuyến là một tình huống phổ biến khi chức năng này là cần thiết

Các phiên PHP hoạt động xung quanh các giới hạn không trạng thái của HTTP và cho phép bạn lưu trữ dữ liệu được liên kết với mỗi khách truy cập vào trang web của bạn. Chỉ với một vài dòng mã, trang web của bạn có thể duy trì dữ liệu về khách truy cập khi họ điều hướng trang web của bạn

Bắt đầu phiên PHP

Khi bạn bắt đầu một phiên, máy chủ web sẽ tạo một mã định danh phiên để xác định duy nhất khách truy cập. Theo mặc định, dữ liệu phiên được lưu trữ trong thư mục /tmp của máy chủ trong các tệp có tên sess_ theo sau là một chuỗi chữ và số duy nhất (mã định danh phiên)

Để bắt đầu một phiên, hãy sử dụng hàm session_start() của PHP. Tuy nhiên, vì hàm session_start() của PHP gửi thông tin trong tiêu đề HTTP nên bạn phải gọi hàm này trước khi trang tạo bất kỳ nội dung nào. Mã mẫu sau minh họa cách thực hiện việc này



    
        Test page
    
    
        

Hello

Bản thân hàm session_start() không bổ sung nhiều chức năng cho trang web. Bạn cần sử dụng biến phiên PHP để thực sự khai thác tiềm năng của phiên PHP

Để biết thêm thông tin về hàm session_start(), vui lòng truy cập http. //www. php. net/thủ công/vi/chức năng. phiên bắt đầu. php

Làm việc với các biến phiên PHP

Mảng kết hợp $_SESSION cho phép bạn lưu trữ dữ liệu phiên trong các biến. Ví dụ: giả sử bạn muốn triển khai bộ đếm lượt truy cập rất đơn giản cho một trang. Bạn không thể làm điều này với một trang HTML chung chung. Tuy nhiên, với các phiên PHP, thật dễ dàng. Mẫu mã sau minh họa một cách để làm điều này



    
        Simple page hit counter
    
    
        

You have visited this page times.

Trong ví dụ này, chúng tôi xác định một biến có tên là hits được lưu trữ trong mảng $_SESSION. Mỗi khi trang được tải, giá trị lần truy cập sẽ tăng thêm một

Thật dễ dàng để thêm các biến phiên PHP bổ sung vào mảng $_SESSION. Tất cả những gì bạn phải làm là tham chiếu tên biến bạn muốn sử dụng và PHP sẽ lo phần còn lại, theo dõi giá trị của nó trên nhiều kết nối HTTP

Để biết thêm thông tin về mảng $_SESSION, vui lòng truy cập http. //www. php. net/manual/en/dành riêng. biến. phiên họp. php

kết thúc một phiên

Để kết thúc một phiên, hãy sử dụng hàm session_destroy(). Chức năng này xóa tất cả dữ liệu phía máy chủ cho phiên hiện tại

Ví dụ: việc thêm hàm session_destroy() vào mã mẫu bộ đếm trang của chúng tôi ở trên sẽ không có nhiều ý nghĩa vì giá trị của biến số lượt truy cập sẽ bị hủy mỗi khi trang được tải. (Trang sẽ luôn hiển thị “Bạn đã truy cập trang này 1 lần” bất kể bạn tải nó bao nhiêu lần. )

Mặt khác, giả sử trang web của bạn có ứng dụng giỏ hàng. Người dùng thêm sản phẩm vào giỏ hàng trên một trang, điền thông tin đặt hàng trên một trang khác và cuối cùng thanh toán. Sau khi người dùng kiểm tra và hoàn tất giao dịch mua, bạn có thể muốn làm trống giỏ hàng và đặt lại các biến phiên PHP. Hàm session_destroy() cho phép bạn làm điều này

Để biết thêm thông tin về hàm session_destroy(), vui lòng truy cập http. //www. php. net/thủ công/vi/chức năng. hủy phiên. php

Cài đặt phiên trong php. ban đầu

Có rất nhiều cài đặt có sẵn trong php. ini cho phép bạn định cấu hình cách phiên hoạt động trên trang web của bạn. Ví dụ, phiên. cài đặt cookie_lifetime cho phép bạn kiểm soát thời gian cookie phiên duy trì hiệu lực và phiên. cài đặt auto_start cho phép bạn tự động bắt đầu phiên thay vì gọi hàm session_start() một cách rõ ràng. Một tùy chọn quan trọng khác là phiên. cài đặt save_path, cho phép bạn chỉ định nơi PHP lưu trữ các tệp phiên (theo mặc định, chúng được lưu trữ trong thư mục /tmp của máy chủ, nhưng thay vào đó, bạn có thể muốn lưu trữ chúng ở đâu đó trong thư mục của riêng mình)

Để biết thông tin chi tiết về tất cả các cài đặt phiên có sẵn trong tệp php. ini, vui lòng truy cập http. //www. php. net/thủ công/vi/phiên. cấu hình. php

bảo mật phiên

Có một số cân nhắc về bảo mật mà bạn nên ghi nhớ khi làm việc với các phiên PHP. Ví dụ: bạn phải bảo vệ chống lại các cuộc tấn công cố định và chiếm quyền điều khiển phiên có thể xảy ra

Để biết thêm thông tin về bảo mật phiên PHP, vui lòng truy cập http. //www. php. net/thủ công/vi/phiên. Bảo vệ. php

Thêm thông tin

Để xem tài liệu PHP chính thức về phiên, vui lòng truy cập http. //www. php. net/manual/en/book. phiên họp. php

Phiên là một cơ chế thay thế cho cookie để lưu trữ thông tin người dùng. Không giống như cookie được lưu trên máy khách (trình duyệt của người dùng), phiên lưu trữ thông tin trong máy chủ lưu trữ ứng dụng

Theo mặc định, phiên lưu dữ liệu trong tệp văn bản trong hệ thống tệp máy chủ. Tuy nhiên, có thể thay đổi cấu hình đó để lưu dữ liệu trong cơ sở dữ liệu, Memcache, Redis, v.v. Đây là tất cả các lựa chọn thay thế rất hữu ích khi làm việc với các ứng dụng nằm trên các máy chủ khác nhau

Sử dụng phiên với PHP

Trong hầu hết các trường hợp, liên kết người dùng/phiên được thực hiện thông qua cookie chứa id phiên. Một phương pháp khác là chuyển



    
        Simple page hit counter
    
    
        

You have visited this page times.

2 dưới dạng truy vấn tham số chuỗi, chẳng hạn

http://test.com/?PHPSESSID=123nd12312

Phương án thứ hai này hoàn toàn không phù hợp vì lý do bảo mật, do đó trong nhiều cấu hình PHP bị vô hiệu hóa. Nhà phát triển, đối với cookie, có thể quyết định phiên kéo dài bao lâu. Trừ khi có quy định khác, nó sẽ hết hạn khi đóng trình duyệt

Phiên được sử dụng rộng rãi để triển khai hệ thống xác thực trang web. Sau khi thông tin đăng nhập được xác minh là hợp lệ, sẽ rất hữu ích khi lưu trữ thông tin của người dùng trên một phiên để không tải lại chúng từ cơ sở dữ liệu ở mỗi lần mở trang

Khởi tạo một phiên

Một phiên, để được sử dụng, cần phải được khởi tạo. Đối với cookie, cần phải khởi tạo nó trước khi bất kỳ đầu ra nào được gửi đến trang

Hàm khởi tạo phiên là



    
        Simple page hit counter
    
    
        

You have visited this page times.

3. Nó chấp nhận một loạt các tùy chọn, nếu được đặt, sẽ ghi đè lên các giá trị mặc định được đặt trong


    
        Simple page hit counter
    
    
        

You have visited this page times.

4. Để biết cài đặt mặc định là gì, hãy tham khảo tài liệu chính thức

Khi phiên được khởi tạo, chúng tôi có thể truy cập dữ liệu có liên quan và theo đó, thêm một số dữ liệu bổ sung. Nếu chúng ta không thay đổi cấu hình PHP và kết xuất mảng $_COOKIE, chúng ta sẽ nhận thấy rằng có một mục nhập



    
        Simple page hit counter
    
    
        

You have visited this page times.

2 chứa id của phiên mới được tạo. Điều này xác nhận những gì đã nói ở trên về mối liên hệ giữa người dùng/phiên

Truy cập dữ liệu phiên

Khi một phiên bắt đầu, thông tin nằm trong mảng $_SESSION. Giả sử chúng ta muốn lưu trữ tên người dùng trong phiên. Sau đó, chúng ta có thể tạo một khóa trong mảng

Xóa dữ liệu phiên

Đối với cookie, cũng có thể xóa một thuộc tính khỏi phiên thông qua hướng dẫn

0

Thay vào đó, nếu chúng ta muốn loại bỏ tất cả các biến trong phiên, chúng ta có thể sử dụng hàm thích hợp

1

________số 8

Hủy phiên

Khi phiên không còn cần thiết, chẳng hạn như khi người dùng đăng xuất, chúng tôi có thể hủy phiên đó thông qua chức năng

2



    
        Simple page hit counter
    
    
        

You have visited this page times.

0

Giữ phiên giữa các tệp khác nhau

Nếu chúng tôi khởi tạo một phiên trong một tệp, chẳng hạn như

3, sẽ không được duy trì tự động nếu chúng tôi truy cập một trang khác. Đây là lý do tại sao ở đầu mỗi tệp chúng ta cần gọi


    
        Simple page hit counter
    
    
        

You have visited this page times.

3. Chức năng này lấy dữ liệu đã lưu trước đó nếu một phiên đã tồn tại

Các biến phiên được quản lý bằng PHP như thế nào?

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ử dụng trên nhiều trang (e. g. tên người dùng, màu sắc 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ế; .

Quản lý phiên hoạt động như thế nào trong PHP?

Khi người dùng lần đầu tiên vào ứng dụng dựa trên phiên bằng cách đưa ra yêu cầu tới trang bắt đầu phiên, PHP sẽ tạo ID phiên và tạo tệp lưu trữ các biến liên quan đến phiên. PHP đặt cookie để giữ ID phiên trong phản hồi mà tập lệnh tạo

Các biến phiên được lưu trữ trong PHP ở đâu?

Theo mặc định, dữ liệu phiên được lưu trữ trong thư mục /tmp của máy chủ trong các tệp có tên sess_ theo sau là một chuỗi chữ và số duy nhất (phần .

Làm cách nào tôi có thể truy cập các biến phiên trong PHP?

Làm cách nào để truy cập các giá trị từ một phiên trong PHP? . Trong ví dụ nêu dưới đây, bạn sẽ tạo một phiên khác với một biến lưu trữ tên của bạn. phiên_bắt đầu();by using the global variable $_SESSION. In the example stated below, you will create another session with a variable that stores your name. session_start();