$_REQUEST

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

$_REQUESTПеременные HTTP-запроса

Описание

Ассоциативный массив (array), который по умолчанию содержит данные переменных $_GET, $_POST и $_COOKIE.

Примечания

Замечание:

Это «суперглобальная», или автоматическая глобальная, переменная. Это просто означает, что она доступна во всех контекстах скрипта. Нет необходимости выполнять global $variable; для доступа к ней внутри метода или функции.

Замечание:

При запуске из командной строки записи argv и argc не включаются в этот массив; записи содержит массив (array) $_SERVER.

Замечание:

Переменные в массиве $_REQUEST передаются в скрипт через механизмы ввода GET, POST или COOKIE и поэтому удалённый пользователь в состоянии изменить переменные, и им нельзя доверять. Будет ли массив содержать переменные и в каком порядке — определяют директивы конфигурации PHP request_order и variables_order.

Добавить

Примечания пользователей 4 notes

up
196
strata_ranger at hotmail dot com
17 years ago
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:<?phpswitch($_SERVER['REQUEST_METHOD']){case 'GET': $the_request = &$_GET; break;case 'POST': $the_request = &$_POST; break;.. // Etc..default:}?>
up
14
mike o.
15 years ago
The default php.ini on your system as of in PHP 5.3.0 may exclude cookies from $_REQUEST.  The request_order ini directive specifies what goes in the $_REQUEST array; if that does not exist, then the variables_order directive does.  Your distribution's php.ini may exclude cookies by default, so beware.
up
3
codeblog.pro
4 years ago
In PHP version 7.0 with the default settings.+, $_REQUEST array does not contain cookies.
up
5
Luke Madhanga
9 years ago
To access $_POST, $_GET, etc, use the function filter_input(TYPE, varname, filter) to ensure that your data is clean. Also, I was brought up to believe that modifying superglobals is a BAD idea. I stand by this belief and would recommend you do too
To Top