提交此表单时,有没有办法只使用$_GET['aa']
来抓住$_POST['aa']
和$_REQUEST
?
<form action="abc.php?aa=1" method="post">
<input type="text" name="aa" value="23" />
<input type="submit" value="Submit" name="submit"/>
</form>
答案 0 :(得分:2)
$_REQUEST
是一个关联数组,默认情况下包含$_GET
,$_POST
和$_COOKIE
的内容。
如果$_GET
,$_POST
和$_COOKIE
都具有相同的参数(例如&#39; aa&#39;在您的情况下),则会覆盖其他参数并成为最终结果$_REQUEST
。
决定谁应该获胜取决于php.ini
配置文件中的request_order和variable_order设置。默认值为ENV,GET,POST,COOKIE和SERVER的顺序。因此,在您的情况下,$_POST['aa']
将与$_REQUEST['aa']
相同。
请注意,默认分发php.ini
文件不包含&#39; C&#39;对于cookie,由于安全问题。这意味着如果您还有一个名为“aa&#39;”的Cookie,它可能不会最终出现在$_REQUEST
变量中。这取决于设置。出于安全原因这很好,您不想更改此默认值。
答案 1 :(得分:1)
$_REQUEST
是$_POST
和$_GET
的混合。它会为您提供post和get变量。您可以像$_REQUEST
一样使用$_GET
和$_POST
喜欢
$_REQUEST['aa'];
但是,如果您的form type
发布,则仅使用$_POST
,或者如果获取类型,则使用$_GET
。
如果您同时使用post
和get
参数,并且使用$_REQUEST
,则仅使用POST
变量。因为POST的优先级高于GET。