Các phiên được lưu trữ giữa các yêu cầu trong php như thế nào?

Một cách khác để làm cho dữ liệu có thể truy cập được trên các trang khác nhau của toàn bộ trang web là sử dụng Phiên PHP

Một phiên tạo một tệp trong một thư mục tạm thời trên máy chủ nơi các biến phiên đã đăng ký và giá trị của chúng được lưu trữ. Dữ liệu này sẽ có sẵn cho tất cả các trang trên trang web trong lần truy cập đó

Vị trí của tệp tạm thời được xác định bởi cài đặt trong tệp php. ini được gọi là phiên. Lưu đường dẫn. Trước khi sử dụng bất kỳ biến phiên nào, hãy đảm bảo rằng bạn đã thiết lập đường dẫn này

Khi một phiên được bắt đầu, những điều sau đây sẽ xảy ra -

  • Trước tiên, PHP tạo một mã định danh duy nhất cho phiên cụ thể đó là một chuỗi ngẫu nhiên gồm 32 số thập lục phân, chẳng hạn như 3c7foj34c3jj973hjkop2fc937e3443

  • Cookie có tên PHPSESSID được tự động gửi đến máy tính của người dùng để lưu trữ chuỗi nhận dạng phiên duy nhất

  • Một 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 mã định danh duy nhất có tiền tố là sess_ tức là sess_3c7foj34c3jj973hjkop2fc937e3443

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

Một phiên kết thúc khi người dùng mất trình duyệt hoặc sau khi rời khỏi trang web, máy chủ sẽ kết thúc phiên sau một khoảng thời gian định trước, thường là 30 phút

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

Một phiên PHP có thể dễ dàng bắt đầu bằng cách gọi hàm session_start[]. Trước tiên, chức năng này kiểm tra xem một phiên đã bắt đầu chưa và nếu chưa có phiên nào bắt đầu thì nó sẽ bắt đầu một phiên. Bạn nên gọi hàm session_start[] ở đầu trang

Các biến phiên được lưu trữ trong mảng kết hợp có tên $_SESSION[]. Các biến này có thể được truy cập trong suốt thời gian tồn tại của phiên

Ví dụ sau bắt đầu một phiên, sau đó đăng ký một biến có tên là bộ đếm được tăng lên mỗi khi trang được truy cập trong phiên

Sử dụng hàm isset[] để kiểm tra xem biến phiên đã được đặt hay chưa

Đặt mã này trong một bài kiểm tra. php và tải tệp này nhiều lần để xem kết quả -



   
   
      Setting up a PHP session
   
   
   
      
   
   

Nó sẽ tạo ra kết quả sau -

You have visited this page 1in this session.

Phá hủy phiên PHP

Phiên PHP có thể bị hủy bởi hàm session_destroy[]. Hàm này không cần bất kỳ đối số nào và một lệnh gọi có thể hủy tất cả các biến phiên. Nếu bạn muốn hủy một biến phiên thì bạn có thể sử dụng hàm unset[] để hủy đặt một biến phiên

Đây là ví dụ để hủy đặt một biến duy nhất -

Đây là cuộc gọi sẽ hủy tất cả các biến phiên -

Bật phiên tự động

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

Phiên không có cookie

Có thể xảy ra 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 để gửi ID phiên tới trình duyệt

Ngoài ra, bạn có thể sử dụng hằng số SID được xác định nếu phiên bắt đầu. Nếu khách hàng không gửi cookie phiên thích hợp, nó sẽ có dạng session_name=session_id. Mặt khác, nó mở rộng thành một chuỗi rỗng. Do đó, bạn có thể nhúng nó vô điều kiện vào các URL

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

Bạn chưa bao giờ sử dụng PHP Sessions và bạn muốn bắt đầu?

Sau đó, hướng dẫn này là dành cho bạn

 

Trong bài đăng này, bạn sẽ tìm thấy giới thiệu đơn giản nhưng đầy đủ về Phiên cùng với một số ví dụ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . on how to use them, a more in depth analysis of the most important functions and some facts about security that you should be aware of.

 

 

 

Thiết kế bởi Freepik

 

 

 

PHIÊN LÀ GÌ

VÀ BẠN CÓ THỂ LÀM GÌ VỚI CHÚNG?

 

 

Mục đích chính của Phiên PHP là thiết lập liên kết trạng thái giữa trang web và máy khách từ xa, với khả năng preserve informations across subsequent client connections.

 

Bằng cách sử dụng Phiên, bạn có thể liên kết một tập hợp các biến với ứng dụng khách đang truy cập tập lệnh PHP của bạn và tự động khôi phục các biến tương tự vào lần tiếp theo cùng một ứng dụng khách đó sẽ kết nối lại

Phiên có thể được sử dụng, ví dụ: trong các trang web thương mại điện tử để ghi nhớ những mặt hàng mà mỗi khách hàng đặt vào giỏ hàng của mình hoặc trong các trang web được bảo vệ bằng mật khẩu để biết liệu khách hàng đang cố truy cập trang web đã được xác thực hay chưa

Trong các trường hợp ví dụ này, lần đầu tiên khách hàng truy cập trang web Phiên mới được bắt đầu . Khi đó, tập lệnh PHP của trang web có thể lưu một số biến cùng với Phiên, chẳng hạn như mặt hàng nào đã được đưa vào giỏ hàng hoặc giá trị boolean cho biết liệu thông tin đăng nhập xác thực hợp lệ có được cung cấp bởi khách hàng hay không.

Lần tiếp theo cùng một khách hàng truy cập trang web, Phiên của nó sẽ được khôi phục cùng với tất cả các biến đã lưu trước đó. Điều này có nghĩa là các tập lệnh PHP của trang web sẽ biết mặt hàng nào đã được đưa vào giỏ hàng hoặc liệu khách hàng có được phép truy cập trang web được bảo vệ hay không.

 

Bây giờ hãy xem cách sử dụng Phiên trong thực tế

 

 

 

PHẦN CƠ BẢN

 

 

Phiên được bật theo mặc định trong hầu hết các cài đặt PHP. Mọi tập lệnh PHP đều có thể sử dụng Phiên, tập lệnh dòng lệnh [như daemon PHP] là ngoại lệ duy nhất có liên quan [lý do là Phiên sử dụng cookie để xác định người dùng từ xa, không có sẵn trong môi trường CLI]

 

Sử dụng Sessions rất đơn giản

Điều đầu tiên bạn cần làm trong tập lệnh PHP của mình là bắt đầu Phiên với hàm session_start[]. Mỗi ứng dụng từ xa đều có Phiên riêng và  session_start[]  đảm nhiệm việc kiểm tra xem Phiên đã được bắt đầu cho ứng dụng hiện được kết nối hay chưa; .

Sau khi bắt đầu Phiên, mảng siêu toàn cục $_SESSION sẽ khả dụng . Đây là nơi bạn có thể lưu trữ tất cả các biến liên quan của Phiên, vì tất cả các biến bên trong mảng này sẽ được lưu và truy xuất vào lần tiếp theo cùng một máy khách sẽ kết nối.

Về cơ bản, đây là tất cả những gì bạn cần biết để bắt đầu sử dụng Phiên, ít nhất là khi bắt đầu

Bây giờ hãy xem một ví dụ cơ bản

 

 

Giả sử bạn muốn biết khách hàng hiện được kết nối đã truy cập trang của bạn bao nhiêu lần. Để làm điều đó, trước tiên bạn cần xác định khách hàng, sau đó bạn cần theo dõi xem khách hàng đó đã kết nối với trang của bạn bao nhiêu lần

Nhận dạng ứng dụng khách từ xa được tự động thực hiện đơn giản bằng cách bắt đầu Phiên với session_start[] .

Điều đó cũng sẽ tạo ra mảng siêu toàn cầu $_SESSION , nơi duy nhất có thể lưu trữ và truy xuất tất cả dữ liệu của Phiên. Mỗi máy khách từ xa khác nhau có mảng $_SESSION riêng, mảng này được tạo và điền đúng cách mỗi khi cùng một máy khách truy cập trang của bạn.

Việc theo dõi các lần truy cập trang của từng khách hàng chỉ là vấn đề bắt đầu Phiên và sử dụng một biến số bên trong mảng $_SESSION . Ví dụ: bạn có thể sử dụng $_SESSION[‘visits’] cho mục đích đó.

Sử dụng một biến thông thường như $visits sẽ không hoạt động vì nó sẽ bị hủy khi kết thúc quá trình thực thi tập lệnh và không bao giờ được truy xuất.

 

Lần đầu tiên khách hàng truy cập trang, mảng $_SESSION sẽ trống và ' . Nếu đây là trường hợp bạn cần khởi tạo nó bằng 0, nếu không bạn chỉ cần tăng nó lên 1. key won’t exists. If this is the case you need to initialize it to 0, otherwise you just need to increment it by 1.

 

Đây là mã

 


   
   Please login:

Chủ Đề