【发布时间】:2015-09-30 12:23:34
【问题描述】:
我正在制作一个如下所示的表单:
<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)。
感谢您的任何帮助或 cmets。
【问题讨论】:
-
您使用的是任何框架还是这个原生 PHP?你试过用 JUST var_dump($_REQUEST); 创建一个页面吗?并检查结果是否相同?
-
感谢您的建议 - 使用 $_REQUEST 而不是 $_POST 可以显示正确的值。为了回答您的问题,本网站未使用 PHP 或 JavaScript 框架。
-
这肯定很奇怪。 $_REQUEST 是所有 GPC 变量,$_POST 只是 post,但两者本质上应该以相同的方式工作,你确定你没有错误地给 _POST 赋值吗?
-
同意。如果 $_REQUEST 都被归类为 GPC 变量,那么对它们的处理方式与 $_POST 不同是没有意义的。