Отсутствуют переменные PHP REST - PullRequest
2 голосов
/ 20 октября 2010

В этот учебник processRequest метод:

...
switch ($request_method){
case 'get':
        $data = $_GET;
        break;
case 'post':
        $data = $_POST;
        break;
 ...

похоже, что переменные $ _GET игнорируются, когда происходит $ _POST (по крайней мере, это происходит в моей тестовой установке - неттот же сценарий, но идея похожа).

Мой тестовый пример:

//URL: `example.com/?iam=get`
//HTML:
<form action="?iam=get" method="post">
    <input type="text" name="textinput" />
    <input type="submit" />
</form>

Печать $data по запросу дает мне:

Array ( [iam] => get ) //Opening the page without submit
Array ( [textinput] => angry fabrik ) //Submitting the form

(Из-за действия формы URL не меняется, но переменная $ _GET iam отсутствует.)

Я часто использую смешанные переменные $ _GET и $ _POST (запросы AJAX, обработка форм и т. Д.).) но теперь я уверен, что я что-то упускаю.Где мое недоразумение?

Заранее спасибо, Фабрик

Ответы [ 3 ]

1 голос
/ 20 октября 2010

Метод запроса всегда публикуется здесь, поэтому команда switch игнорирует "get" -part.

Попробуйте

...
switch ($request_method){
case 'get':
        $data_get = $_GET;
        break;
case 'post':
        $data_post = $_POST;
        $data_get = $_GET;
        break;
 ...

и используйте новые переменные.

0 голосов
/ 20 октября 2010

$ _ REQUEST может быть то, что вы ищете. $ _ ЗАПРОС Руководство .Если вы не хотите доверять ему (он также хранит $ _COOKIE), вы можете написать собственное слияние для $ _GET и $ _POST.

0 голосов
/ 20 октября 2010

В приведенном выше коде $data заполняется либо $ _GET, либо $ _POST в зависимости от метода запроса.

Если вы отправляете форму, $ _GET игнорируется.Но в любом случае $ _GET будет по-прежнему содержать переменную "iam ", и вы можете получить к ней доступ в любое время с помощью чего-то вроде

$iam = $_GET['iam'];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...