Url PUSH Проблема в методе $ _POST - PullRequest
1 голос
/ 08 декабря 2011

В настоящее время я работаю над проектом, который подключается к smsgateway.Как только пользователь отправляет смс на шлюз, он перенаправляет запросы на наш сервер.Проблема в том, что они получены в методе $ _GET.Но провайдер sms говорит, что передает его в методе $ _POST.URL, полученный с нашей стороны, выглядит следующим образом.

http://www.example.com/smstest?msg=sample&id=55788

Возможно ли получить параметры в URL при использовании метода $ _POST

Ответы [ 3 ]

2 голосов
/ 08 декабря 2011

HTTP-запрос может использовать HTTP-метод POST и по-прежнему использовать URL-адрес, содержащий параметры запроса.POST - это просто «глагол», используемый в заголовке HTTP, такой же, как GETPUT и DELETE).URL-адрес всегда может содержать параметры запроса и также может содержать тело запроса (хотя GET запросы не должны ).Переменная PHP $_GET просто представляет параметры проанализированного запроса URL, переменная $_POST просто представляет тело проанализированного запроса.На самом деле они не имеют никакого отношения к HTTP-глаголу и поэтому несколько неправильно названы.

2 голосов
/ 08 декабря 2011

Да, это так.Первая строка каждого HTTP-запроса содержит метод (или глагол) и URI, для которого сделан запрос.Никаких особых ограничений на URI не накладывается в зависимости от выбора метода, поэтому могут быть сделаны POST-запросы для URI, который включает строку запроса .

. Из PHP вы можете получить доступ к параметрамстрока запроса обычно через $_GET и $_REQUEST.Параметры, передаваемые как часть отправленной формы, доступны как всегда через $_POST и $_REQUEST.

1 голос
/ 08 декабря 2011

У вас может быть только один глагол (POST, GET, PUT, ...) при выполнении HTTP-запроса .Однако вы можете сделать

<form name="y" method="post" action"y.php?foo=bar">

, и тогда PHP также заполнит $ _GET ['foo'], хотя запрос был обработан POST.

Для комментария

При использовании

$_SERVER['REQUEST_METHOD']
...