我正在制作一个表单,看起来像这样:
<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或名称中有"option"。
是否有可能,我的版本的PHP没有正确配置这样做,或者这是默认的行为,它只是应该工作?活动服务器使用PHP 5.2 (XAMPP),本地服务器使用PHP 5.3.5 (MAMP)。
感谢您的帮助和意见。
PHP用parse_str()函数解析它,该函数只使用一个现在已弃用的设置
所以检查magic_quotes_gpc
设置在本地和远程和比较。
仔细看parse_str()
是如何解析示例字符串的。你可以在这个字符串上使用$_SERVER['QUERY_STRING']
和parse_str()
,看看结果。
也检查:
- http://php.net/manual/en/info.configuration.php ini.magic-quotes-gpc
- http://php.net/manual/en/language.variables.external.php