2011-11-30 32 views
10

php cung cấp khả năng gửi mảng từ _GET.gửi mảng trong _GET trong php

dụ:

test.php?var1=abc&arr[0]=1&arr[3]=test 

chí đầu ra:

Array 
(
    [var1] => abc 
    [arr] => Array 
     (
      [0] => 1 
      [3] => test 
     ) 

) 

được này xem xét mã xấu?

+0

hoàn toàn ổn và được thực hiện thường xuyên. chỉ cần chắc chắn rằng bạn xác nhận các giá trị trước khi bạn làm bất cứ điều gì với chúng. – Yamiko

Trả lời

16

Không, đó là thực tế thông thường. Ngoài ra, thực tiễn tự nhiên để gửi các lựa chọn có kích thước lớn hơn một.

+0

bạn có thể cho tôi biết ý của bạn là gì bằng cách gửi các lựa chọn có kích thước lớn hơn một? – aki

+0

khi bạn tạo các phần tử biểu mẫu chọn với thuộc tính size = "n" và multiple = "multiple" - bạn có thể chọn một số tùy chọn. Khi nó đến máy chủ, nó trông giống như selectname = val1 & selectname = val2 & ... Vì vậy, để nhận các giá trị trong PHP, bạn cần đặt tên là selectname [], và trong $ _GET hoặc $ _POST nó sẽ là mảng với key selectname. – dmitry

+0

Tôi hiểu rồi, cảm ơn vì thông tin – aki

3

số

Đó có vẻ tốt đẹp.

Bạn thậm chí có thể làm:

test.php var1 = abc & arr [] = 1 & arr [] = test

nào sẽ ra:

Array 
(
    [var1] => abc 
    [arr] => Array 
     (
      [0] => 1 
      [1] => test 
     ) 

) 
-1

Vâng, đó là một điều xấu để làm, và nó cũng thực sự xấu cho các trang web của bạn SEO. Nó nhanh chóng được thực sự khó hiểu nếu bạn đặt quá nhiều trong chuỗi truy vấn. Giữ nó đơn giản!

+0

Không ... chỉ KHÔNG. Tôi giả sử bạn có ít hoặc không có kiến ​​thức về .htaccess viết lại. http://roshanbh.com.np/2008/03/url-rewriting-examples-htaccess.html chỉ vì bạn chuyển dữ liệu với '$ _GET' KHÔNG có nghĩa là dữ liệu có thể xem được trong url. bạn có thể sử dụng htaccess để thay đổi cách hiển thị url. hầu hết các trang web thay thế '& foo = bar' và'? foo = bar' bằng '/ bar'. Ngoài ra, OP không hỏi về SEO mà anh ta hỏi về thực hành mã hóa. – Yamiko

+0

OP không hỏi về viết lại htaccess. Tôi biết rất nhiều về htaccess viết lại, và tôi cũng có thể nói rằng tập tin .htaccess của bạn có chứa rất nhiều ghi đè, thay vì một chuyển hướng mọi thứ đến/và sau đó phân tích trên $ _SERVER ['REQUEST_URI'] để thay thế. Nhưng tôi biết gì? Tôi có ít hoặc không có kiến ​​thức về .htaccess viết lại. –

+0

OP hỏi về '$ _GET' lý do của bạn để nói rằng nó không hợp lệ vì bạn có thể sử dụng .htaacess. có tôi không có quy tắc viết lại bởi vì một số dữ liệu trong url tôi muốn được nhìn thấy cho các mục đích SEO. Ngoài ra, tôi cũng tò mò về cách bạn chuyển dữ liệu nếu người dùng nhấp vào liên kết được tạo động để truy cập blog có id mà không truyền dữ liệu trong url liên kết. – Yamiko