PHP不会将名称中带方括号的表单输入转换为数组

时间:2015-09-30 12:23:35

标签: php forms

我正在处理如下表单:

<form id="add_to_basket" action="" method="post">
    <select name="option[10]">
        <option value="1">Red</option>
        <option value="2">Silver</option>
    </select>
    <select name="option[11]">
        <option value="A">Metallic</option>
        <option value="B">Colour Changing</option>
    </select>
</form>

表单由JavaScript验证并提交,然后由PHP脚本处理。在实时服务器上,表单工作正常,并且正确捕获值,如果我使用var_dump()获取$ _POST的内容,我会看到:

array(1) {
    ["option"]=>
    array(2) {
        [10]=>
        string(1) "1"
        [11]=>
        string(1) "A"
    }
}

但是当我在本地服务器上做同样的事情时,我看到了:

array(1) {
    ["option"]=>
    string(0) ""
}

我省略了其他输入字段,但没有一个输入字段&#34;选项&#34;在ID或名称中。

我的PHP版本是否可能没有正确配置才能执行此操作,或者这是默认行为,它应该起作用吗?实时服务器使用PHP 5.2(XAMPP),本地服务器使用PHP 5.3.5(MAMP)。

感谢您的任何帮助或评论。

1 个答案:

答案 0 :(得分:0)

PHP使用parse_str()函数解析它,该函数仅使用1个现已弃用的设置

因此,请检查本地和远程设置magic_quotes_gpc并进行比较。

仔细查看parse_str()如何解析样本字符串。您可以获取$_SERVER['QUERY_STRING']并在此字符串上使用parse_str()并查看结果。

同时检查: