2011-11-30 93 views
10

PHP提供從_GET發送數組的能力。發送數組在_GET php

例如:

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

將輸出:

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

) 

被認爲這是壞的編碼?

+0

完全好,經常做。只要確保你在對它們做任何事情之前驗證這些值。 – Yamiko

回答

16

不,這是通常的做法。發送尺寸大於1的選擇也是很自然的做法。

+0

你能告訴我你發送'尺寸大於1的選擇'的意思嗎? – aki

+0

當你創建表單元素選擇與屬性大小=「n」和倍數=「倍數」 - 你可以選擇幾個選項。當它進入服務器時,它看起來像selectname = val1&selectname = val2&...因此,要在PHP中接收值,您需要將select命名爲selectname [],並且在$ _GET或$ _POST中它將是具有鍵selectname的數組。 – dmitry

+0

哦,我看到了,謝謝你的信息 – aki

3

這看起來不錯。

你甚至可以這樣做:

test.php的VAR1 = ABC & ARR [] = 1個& ARR [] =測試

這將輸出:?

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

) 
-1

是的,這是一件壞事,它也對你的網站SEO非常不利。如果你在查詢字符串中放置太多,它很快會變得非常混亂。把事情簡單化!

+0

不......只是沒有。我認爲你幾乎不知道.htaccess重寫。 http://roshanbh.com.np/2008/03/url-rewriting-examples-htaccess.html僅僅因爲你用'$ _GET'傳遞數據並不意味着數據在url中可見。你可以使用htaccess來改變url的顯示方式。大多數網站用'/ bar'替換'&foo = bar'和'?foo = bar'。此外,OP沒有詢問關於編碼實踐的SEO。 – Yamiko

+0

OP沒有詢問htaccess重寫。我知道很多關於htaccess重寫的內容,我也可以告訴你的.htaccess文件probaly充滿了大量重寫,而不是重定向到/然後解析$ _SERVER ['REQUEST_URI']。但是我知道什麼?我幾乎不知道.htaccess重寫。 –

+0

OP詢問'$ _GET'您說明它不好的原因是無效的,因爲您可以使用.htaac​​ess。是的,我確實有重寫規則,因爲我想在SEO中看到一些數據。我也好奇你如何傳遞數據,如果用戶點擊一個動態生成的鏈接去帶有一個ID的博客,而不會在鏈接url中傳遞數據。 – Yamiko