PHP 5.4将参数中的[替换为特殊字符


PHP 5.4 replaces [ in parameters with specialchars

我正在做一个xtCommerce Shop,它似乎在PHP 5.4上有问题(至少在较低的版本上运行得很好)。当前的问题是,PHP似乎用specialchars替换了id的括号。

<form method="get">
    <input type="checkbox" value="1234" name="ids[]"></input>
</form>

发送print_r($_GET)时显示:[ids%5B%5D] => 1234

我以前没见过这种情况,有人能帮帮我吗?

另一个例子:从多个

<select name="group_name[5933]">
    <option value="1"></option>
</select>

print_r($_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

第三个例子,不同的页面,post:

    <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>

和这里的$_POST只是空的,只有$_GET设置。

这似乎更像是JavaScript在这里的责任。如果您的表单是通过AJAX提交的,请查看。

如果我错了,这不是一个AJAX表单,它可能有一个PHP配置错误或你有一个旧版本的PHP,但我想说AJAX更有可能是错误的。