Chuỗi truy vấn PHP
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 sau đó người dùng nhấp vào liên kết này,moreinfo. 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 Nếu bạn muốn chuyển mật khẩu, đừng chuyển mật khẩu bằng GET (chuỗi truy vấn). Bạn cần chuyển nó qua POST và SSL là bắt buộc. SSL tạo kết nối được mã hóa giữa trình duyệt web và máy chủ web. Không có SSL, chuyển mật khẩu qua POST cũng giống như qua GET, vì dữ liệu POST cũng không được mã hóa. Nhưng với SSL, dữ liệu GET vẫn không được mã hóa (nhưng dữ liệu POST được mã hóa), đó là lý do tại sao bạn cần POST cho mật khẩu Thêm giải pháp của bạn ở đây B I U S small BIG code Xem trước 0thành viên hiện cóhoặc tham gia với chúng tôiTải xuống, Bình chọn, Nhận xét, Xuất bản Email của bạnEmail này đang được sử dụng. Bạn có cần mật khẩu của bạn? Mật khẩu tùy chọnKhi trả lời câu hỏi, vui lòng.
Nội dung này, cùng với bất kỳ tệp và mã nguồn liên quan nào, được cấp phép theo Giấy phép Mở Dự án Code (CPOL) Chuỗi truy vấn PHP là gì?Chuỗi truy vấn là thuật ngữ để thêm/chuyển dữ liệu trong URL . Nó không phải là ngôn ngữ cụ thể.
Làm cách nào để truy cập chuỗi truy vấn trong PHP?Cách tiếp cận. Phân tích cú pháp chuỗi URL bằng cách sử dụng hàm parse_url() hàm này sẽ trả về một mảng kết hợp chứa các thành phần khác nhau (URL đã truyền). Truy vấn của mảng được trả về bởi hàm parse_url() chứa chuỗi truy vấn URL.
Làm cách nào để tạo chuỗi truy vấn trong PHP?Kết quả. PHP có thể tạo chuỗi truy vấn từ mảng sử dụ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.
Làm cách nào để truyền dữ liệu trong chuỗi truy vấn trong PHP?Bạn cũng có thể chuyển giá trị từ trang này sang trang khác bằng cách sử dụng SESSION. session_start(); . Trong trang Tiếp theo nơi bạn muốn tìm nạp. $var is the variable where you store the value that you want to pass to next page and variable name is name of session variable . In the Next page where you want to fetch. |