Selecting $_GET or $_POST depending on the request method isn't a general solution, since it's possible for an HTTP request to have both posted content and a query string in the URI.
If you want to allow for this possibility, you can use
<?php
$req = array_merge($_GET, $_POST);
?>
or vice versa, depending on which you want to be used in the event of a clash between them.
$_REQUEST
$_REQUEST — HTTP İstek değişkenleri
Sürüm Bilgisi
| Sürüm: | Açıklama |
|---|---|
| 5.3.0 | request_order yönergesi ilk olarak bu sürümde kullanılmıştır. Bu yönerge $_REQUEST içeriğini etkiler. |
| 4.3.0 | $_FILES bilgisi $_REQUEST'ten çıkarılmıştır. |
| 4.1.0 | $_REQUEST ortaya çıkmıştır. |
Notlar
Bilginize: Bu bir süper küreseldir. Yani bir betiğin her yerinde geçerlidir. Değişkene işlevler ve yöntemlerin içinden erişmek için global $değişken; deyimine gerek yoktur.
Bilginize: Komut satırından çalışmada, bu dizi argv ve argc girdilerinde içerilmez; bunlar $_SERVER dizisinde bulunur.
Bilginize: $_REQUEST içindeki değişkenler betiğe GET, POST, ve COOKIE girdi mekanizmaları ile sağlanır ve bu nedenle uzak kullanıcı tarafından değiştirilebilir ve bunlara güvenilemez. Bu dizide listelenen değişkenlerin varlıkları ve sıraları PHP variables_order yapılandırma yönergesine göre tanımlanır.
Ayrıca Bakınız
- import_request_variables() - GET/POST/Çerez değişkenlerini küresel etki alanına dahil eder
- Dış kaynaklı değişkenlerle çalışmak
- Süzme eklentisi
$_REQUEST
smjg at iname dot com
13-Aug-2009 10:56
13-Aug-2009 10:56
strata_ranger at hotmail dot com
17-Jul-2008 03:04
17-Jul-2008 03:04
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:
}
?>
