2013-08-09 2 views
0

При отправке этой формы есть ли способ поймать $_GET['aa'] и $_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> 
+0

Нет. Зачем это требовалось? – Phil

+0

Если вы упоминаете метод как сообщение, тогда почему вы поймаете значение, используя запрос –

+0

Что я вижу, вы пытаетесь передать ** 'aa = 1' ** с помощью действия формы и снова ** 'aa = 23' ** с использованием типа ввода = 'text'. Можете ли вы это прояснить? – Debashis

ответ

1

$_REQUEST представляет собой смесь обоих $_POST и $_GET .Это даст вам как пост и получить variables.You могут использовать $_REQUEST похожи как $_GET и $_POST как

$_REQUEST['aa']; 

Но вот если ваш form type это пост, то использовать только $_POST или, если это получить тип затем использовать $_GET.

Если у вас есть оба post и get Params с таким же именем, и если вы используете $_REQUEST, то он будет принимать POST переменная only.Because POST имеет более высокий приоритет, чем GET.

+0

Если вы посмотрите на атрибут' action' формы, там есть параметр HTTP GET. –

+0

Если у вас есть оба сообщения и получить параметры с тем же именем, и если вы используете $ _REQUEST, тогда будет только переменная POST. – Gautam3164

+0

Зависит от [variables_order] (http://www.php.net/manual/ini.core.php # ini.variables-order) элемент конфигурации – Phil

2

$_REQUEST - ассоциативный массив, который по умолчанию содержит содержимое $_GET, $_POST и $_COOKIE.

Если $_GET, $_POST и $_COOKIE все имеют один и тот же параметр (т.е. «аа» в вашем случае) один перекроет другим и стать конечным результатом в $_REQUEST.

Решение о том, кто должен выиграть, зависит от параметров конфигурации request_order и variable_order в конфигурационном файле php.ini. Значение по умолчанию соответствует ENV, GET, POST, COOKIE и SERVER. Поэтому в вашем случае $_POST['aa'] будет таким же, как $_REQUEST['aa'].

Обратите внимание, что файлы распределения по умолчанию php.ini не содержат «C» для файлов cookie из-за проблем с безопасностью. Это означает, что вы также имеете Cookie с именем «aa», это может не оказаться в переменной $_REQUEST. Это зависит от настроек. Это полезно по соображениям безопасности, и вы не хотите изменять это значение по умолчанию.

Смежные вопросы