【发布时间】:2009-11-15 06:28:30
【问题描述】:
是否真的可以同时在 $_GET 和 $_POST 中获取数据?这与 $_REQUEST 中的内容有何关系?
【问题讨论】:
标签: php
是否真的可以同时在 $_GET 和 $_POST 中获取数据?这与 $_REQUEST 中的内容有何关系?
【问题讨论】:
标签: php
是的,这是可能的。考虑如下形式:
<form action="foobar.php?a=123&b=456" method="post">
<input type="text" name="a" value="llama">
<input type="text" name="b" value="duck">
<input type="submit" name="go" value="Submit me!">
</form>
提交此表单时,$_GET["a"] == "123"、$_GET["b"] == "456"、$_POST["a"] == "llama"、$_POST["b"] == "duck" 和 $_POST["go"] == "Submit me!"。
这与$_REQUEST 超全局的关系取决于request_order(或更旧的variables_order)PHP 配置设置的值,正如the php.ini documentation 所解释的那样。
【讨论】:
两者中肯定都有数据...考虑以下(非常简单的)页面:
<body>
<form method="post" action="params.php?myparam=myval">
<input type="text" name="param1"></input>
<input type="submit" name="submit" value="submit" />
</form>
</body>
注意表单的action包含一个查询字符串,方法是post。 $_GET 包含查询字符串参数,$_POST 包含表单参数,$_REQUEST 包含来自两个数组的合并参数:
array(3) {
["myparam"]=>
string(1) "myval"
["param1"]=>
string(0) ""
["submit"]=>
string(6) "submit"
}
查看request_order 以控制如何在$_REQUEST 中处理超全局变量。
【讨论】:
这是可能的。 request_order 或(如果未设置)variables_order 指令确定当在两者中设置键时哪个将在 $_REQUEST 中优先。
【讨论】:
这在 PHP 中是可能的,因为尽管名称不同,$_GET 和 $_POST 并不真正需要 GET 或 POST。
实际的请求方法是什么并不重要——它可能是一个 PUT 并且那些超全局变量仍然会被填充。
【讨论】: