2011-11-30 92 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