[英]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.