提交此表单时,有什么方法可以捕获$_GET['aa']
and $_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>
提交此表单时,有什么方法可以捕获$_GET['aa']
and $_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>
$_REQUEST
$_GET
是一个关联数组,默认情况下包含 和 的$_POST
内容$_COOKIE
。
如果$_GET
,$_POST
并且$_COOKIE
都具有相同的参数(即在您的情况下为“aa”),则一个将覆盖其他参数并成为$_REQUEST
.
谁应该获胜的决定取决于配置文件中的request_order和variable_order设置。php.ini
默认的顺序是 ENV、GET、POST、COOKIE 和 SERVER。因此,在您的情况下,$_POST['aa']
将与$_REQUEST['aa']
.
请注意php.ini
,出于安全考虑,默认分发文件不包含 cookie 的“C”。这意味着如果您还有一个名为“aa”的 Cookie,它可能不会出现在$_REQUEST
变量中。这取决于设置。出于安全原因,这很好,您不想更改此默认值。
$_REQUEST
是两者的混合体。$_POST
它$_GET
会给你发布和获取变量。你可以使用$_REQUEST
as like as$_GET
和$_POST
like
$_REQUEST['aa'];
但是在这里,如果您form type
是post则仅使用$_POST
,或者如果它是get类型则使用$_GET
.
如果您同时拥有post
和get
参数相同的名称,并且如果您使用,$_REQUEST
那么它将只接受POST
变量。因为 POST 的优先级高于 GET。