Chuỗi truy vấn PHP là gì?
Hầu hết mọi người đều biết cách truy xuất các tham số URL bằng cách sử dụng mảng $_GET. Tuy nhiên, nếu bạn muốn truy xuất các tham số này dưới dạng chuỗi thì sao? Show Ví dụ: giả sử chúng ta có URL sau
Như bạn có thể thấy, chuỗi truy vấn trong URL ở trên chứa ba tham số GET Nếu chúng ta muốn truy xuất mọi thứ sau dấu chấm hỏi và gán nó cho một chuỗi, chúng ta chỉ cần truy cập phần tử QUERY_STRING trong mảng siêu toàn cục $_SERVER như vậy //Get the full string $queryString = $_SERVER['QUERY_STRING']; var_dump($queryString); Nếu chúng tôi chạy đoạn mã trên trên URL được đề cập, nó sẽ trả về chuỗi sau
Lưu ý cách chuỗi này không chứa biểu tượng dấu chấm hỏi. Nếu ký hiệu này là cần thiết, thì bạn sẽ phải tự thêm lại. Nếu không có chuỗi truy vấn thì sao?Nếu không có chuỗi truy vấn thì khóa QUERY_STRING trong $_SERVER sẽ là một chuỗi rỗng Không giống như các phần tử khác trong mảng $_SERVER, QUERY_STRING phải luôn tồn tại Tại sao điều này hữu ích?Điều này có thể hữu ích vì một số lý do Hai điều đầu tiên xuất hiện trong tâm trí là
QUERY_STRING và XSSBạn không bao giờ được in biến QUERY_STRING ra trang mà không lọc nó trước Nếu bạn làm điều này, bạn sẽ để ngỏ khả năng bị tấn công Cross Site Scripting (XSS) $queryString = $_SERVER['QUERY_STRING']; echo 'Link'; Đoạn mã trên dễ bị XSS vì kết quả QUERY_STRING đang được in ra mà không có bất kỳ loại lọc nào. Do đó, những người dùng ác ý có khả năng đưa mã JavaScript vào chuỗi truy vấn và thực thi mã đó trên trang của bạn Vì chuỗi truy vấn là một chuỗi ký tự được lưu trữ trong một URL, nên bạn có thể tạo một URL chứa chuỗi truy vấn trong tập lệnh PHP của mình Sau đó bao gồm URL dưới dạng liên kết trong trang được hiển thị Đây là một ví dụ đơn giản tạo hai biến, $firstName và $age, sau đó tạo một liên kết trong trang được hiển thị có chứa một chuỗi truy vấn để lưu trữ các giá trị của biến $firstName ="Tom" ; $age ="3" ; $queryString ="firstName=$firstName&age=$age" ; echo''; Mã này tạo ra đánh dấu sau Find out more info on this person Nếu người dùng sau đó nhấp vào liên kết này, thông tin thêm. php được chạy và dữ liệu chuỗi truy vấn (firstName=Tom & age=3) được chuyển đến moreinfo. tập lệnh php Dữ liệu đã được truyền từ lần thực thi tập lệnh này sang lần thực thi tập lệnh tiếp theo Lưu ý rằng ký tự dấu và (&) cần được mã hóa dưới dạng & bên trong mã đánh dấu XHTML mã hóa URLPHP cung cấp cho bạn một hàm gọi là urlencode() có thể mã hóa bất kỳ chuỗi nào bằng cách sử dụng mã hóa URL Thử nghiệmFind out more info onthis person '; ?>//w ww .j av a2s . c o m Kết quảPHP có thể tạo chuỗi truy vấn từ mảng bằng hàm http_build_query() Hàm này lấy một mảng kết hợp gồm các tên và giá trị trường và trả về toàn bộ chuỗi truy vấn Các chuỗi truy vấn cũng được tạo bằng cách gửi biểu mẫu hoặc bởi người dùng nhập truy vấn vào thanh địa chỉ của trình duyệt Ghi chú. Nếu bạn muốn gửi một lượng lớn dữ liệu (hơn 100 kb) thì Request. QueryString không thể được sử dụng
________số 8
$queryString = $_SERVER['QUERY_STRING']; echo 'Link';0 $queryString = $_SERVER['QUERY_STRING']; echo 'Link';1 Ví dụ chuỗi truy vấn trong PHP là gì?Chuỗi truy vấn là gì? . id khóa có giá trị 5 và tên khóa có giá trị php. $id = $_GET['id']; Đoạn mã trên nhận giá trị của id , trong trường hợp này là 5.
Chuỗi truy vấn có nghĩa là gì?Chuỗi truy vấn là tập hợp các ký tự được nhập vào máy tính hoặc trình duyệt Web và được gửi tới chương trình truy vấn để khôi phục thông tin cụ thể từ cơ sở dữ liệu .
Việc sử dụng chuỗi truy vấn là gì?Bộ sưu tập QueryString được sử dụng để truy xuất các giá trị biến trong chuỗi truy vấn HTTP . Dòng trên tạo một biến có tên là txt với giá trị "đây là kiểm tra chuỗi truy vấn". Các chuỗi truy vấn cũng được tạo bằng cách gửi biểu mẫu hoặc bởi người dùng nhập truy vấn vào thanh địa chỉ của trình duyệt.
Máy chủ $_ [' QUERY_STRING '] trong PHP là gì?$_SERVER là một mảng chứa thông tin như tiêu đề, đường dẫn và vị trí tập lệnh . |