繁体   English   中英

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

[英]PHP not converting form inputs with square brackets in names to arrays

我正在处理一个看起来像这样的表单:

<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) ""
}

我已经省略了其他输入字段,但是它们的ID或名称中都没有“选项”。

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

感谢您的协助或评论。

PHP使用parse_str()函数对其进行语法分析,该函数仅使用1个已弃用的设置

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

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

还要检查:

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM