Don't forget, because $_REQUEST is a different variable than $_GET and $_POST, it is treated as such in PHP -- modifying $_GET or $_POST elements at runtime will not affect the ellements in $_REQUEST, nor vice versa.
e.g:
<?php
$_GET['foo'] = 'a';
$_POST['bar'] = 'b';
var_dump($_GET); // Element 'foo' is string(1) "a"
var_dump($_POST); // Element 'bar' is string(1) "b"
var_dump($_REQUEST); // Does not contain elements 'foo' or 'bar'
?>
If you want to evaluate $_GET and $_POST variables by a single token without including $_COOKIE in the mix, use $_SERVER['REQUEST_METHOD'] to identify the method used and set up a switch block accordingly, e.g:
<?php
switch($_SERVER['REQUEST_METHOD'])
{
case 'GET': $the_request = &$_GET; break;
case 'POST': $the_request = &$_POST; break;
.
. // Etc.
.
default:
}
?>
$_REQUEST
(No version information available, might be only in CVS)
$_REQUEST — HTTP Request variables
Дневник на промените
| Версия | Описание |
|---|---|
| 5.3.0 | Introduced request_order. This directive affects the contents of $_REQUEST. |
| 4.3.0 | $_FILES information was removed from $_REQUEST. |
| 4.1.0 | Introduced $_REQUEST. |
Бележки
Забележка: This is a 'superglobal', or automatic global, variable. This simply means that it is available in all scopes throughout a script. There is no need to do global $variable; to access it within functions or methods.
Забележка: When running on the command line , this will not include the argv and argc entries; these are present in the $_SERVER array.
Забележка: Variables provided to the script via the GET, POST, and COOKIE input mechanisms, and which therefore cannot be trusted. The presence and order of variable inclusion in this array is defined according to the PHP variables_order configuration directive.
$_REQUEST
17-Jul-2008 05:04
22-May-2008 04:05
POST has priority over GET.
If you POST and GET the same variable with different values, the POST value will be the one used in the REQUEST variable.
EX:
<?PHP
if(isset($_GET['posted']) == 1)
{
echo "POST: ";
print_R($_POST);
echo "<br/>GET: ";
print_R($_GET);
echo "<br/>REQUEST: ";
print_R($_REQUEST);
}
else
{
?>
<form method="post" action="?posted=1&something=someotherval">
<input type="text" value="someval" name="something"/>
<input type="submit" value="Click"/>
</form>
<?
}
?>
The above form post will result in the following output:
POST: Array ( [something] => someval )
GET: Array ( [posted] => 1 [something] => someotherval )
REQUEST: Array ( [posted] => 1 [something] => someval )
