0

提交此表单时,有什么方法可以捕获$_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>
4

2 回答 2

2

$_REQUEST$_GET是一个关联数组,默认情况下包含 和 的$_POST内容$_COOKIE

如果$_GET,$_POST并且$_COOKIE都具有相同的参数(即在您的情况下为“aa”),则一个将覆盖其他参数并成为$_REQUEST.

谁应该获胜的决定取决于配置文件中的request_ordervariable_order设置。php.ini默认的顺序是 ENV、GET、POST、COOKIE 和 SERVER。因此,在您的情况下,$_POST['aa']将与$_REQUEST['aa'].

请注意php.ini,出于安全考虑,默认分发文件不包含 cookie 的“C”。这意味着如果您还有一个名为“aa”的 Cookie,它可能不会出现在$_REQUEST变量中。这取决于设置。出于安全原因,这很好,您不想更改此默认值。

于 2013-08-09T05:41:03.630 回答
1

$_REQUEST是两者的混合体。$_POST$_GET会给你发布和获取变量。你可以使用$_REQUESTas like as$_GET$_POSTlike

$_REQUEST['aa'];

但是在这里,如果您form typepost则仅使用$_POST,或者如果它是get类型则使用$_GET.

如果您同时拥有postget参数相同的名称,并且如果您使用,$_REQUEST那么它将只接受POST变量。因为 POST 的优先级高于 GET。

于 2013-08-09T05:27:04.107 回答