PHP5.4将参数中的[in]替换为specialchars

PHP5.4将参数中的[in]替换为specialchars,php,Php,我在一家xtCommerce商店工作,它似乎在PHP5.4上有问题(至少它以前在较低版本上运行良好)。 当前的问题是,PHP似乎用specialchars替换ID的方括号,例如: <form method="get"> <input type="checkbox" value="1234" name="ids[]"></input> </form> print\r($\u GET)显示: [group_name%5B5933%5D] =&

我在一家xtCommerce商店工作,它似乎在PHP5.4上有问题(至少它以前在较低版本上运行良好)。 当前的问题是,PHP似乎用
specialchars
替换ID的方括号,例如:

<form method="get">
    <input type="checkbox" value="1234" name="ids[]"></input>
</form>
print\r($\u GET)
显示:

[group_name%5B5933%5D] => 1
[group_name%5B5934%5D] => 1
[group_name%5B5940%5D] => 1
[group_name%5B61432%5D] => 1
[group_name%5B61576%5D] => 1
[group_name%5B61598%5D] => 1
[group_name%5B62579%5D] => 1
[group_name%5B90287%5D] => 1
[group_name%5B90288%5D] => 1
[group_name%5B103035%5D] => 1
[group_name%5B109678%5D] => 1
第三个示例,不同的页面,带有帖子:

    <form method="post" action="http://xxxx/admin/cross_sell_groups.php?page=1&action=insert" name="status">
<input type="text" name="cross_sell_group_name[2]"></input>
</form>


这里是$\u POST just empty,只设置了$\u GET。

这似乎更像是一些JavaScript造成的。如果您的表单是通过AJAX提交的,请查看这一点


如果我错了,并且这不是一个AJAX表单,那么可能是PHP配置错误,或者您使用的是旧版本的PHP,但我认为AJAX更有可能出错。

PHP并没有取代这一点,而是在发送数据时使用浏览器(除非您能够确切说明发生了什么)。这是一个合法的做法。我不同意这里的说法,如果你发送它,print\r将显示一个数组,其中包含一个值。此外,它应该可以工作,并且不会在没有输入的情况下返回。我怀疑PHP之前的页面中有JS。根据浏览器开发工具的Net选项卡,原始HTTP请求看起来像什么?原始HTTP看起来像
HTTP目前,产品(id=6028&CPA=1和组名%5B=5%6%6176%5D=1和组名%5%6%6176%5D=1和组名%6%6%6%6%6%5D=1和id%5%5%5 d=5%4=33和4/4/4/4/4/4/4/4/8/8/8/8/8/8/8/8/8/8/4/4/4/10/10/10/4.5/10/4.5/10/10/10/10/10/10/10/10/10/10/10/4.5%5%4.5%5%5%5%5%5%5%1和4.5%5%5%5%5%5%4.5%1和身份身份和4.5%5%5%5%5%5%5%5%5%5%5%5%5%5%5%4和me%5B103035%5D=1&group_name%5B109678%5D=1
浏览器开发工具在鼠标悬停时显示括号,尽管在我复制它时,括号并未显示在此处(Firefox 28),而且不涉及js,shop以前在一个服务器上工作过w PHP5.2可能值得一看php.ini,以确保在使用PHP5.2时“magic_quotes”之类的东西是“关闭”的。或者只是看看现在有什么不同。我很感激这是一个“绝望”的建议。javascript没有涉及,没有添加或更改,shop一周前与P合作过HP 5.2,现在在5.4下运行,它显示了该错误。该错误不仅出现在表单上,而且许多表单使用数组作为参数。嘿,xtCommerce和AJAX,你一定是在开玩笑:)
    <form method="post" action="http://xxxx/admin/cross_sell_groups.php?page=1&action=insert" name="status">
<input type="text" name="cross_sell_group_name[2]"></input>
</form>