получение данных поста без переменных в php - PullRequest
1 голос
/ 29 июня 2011

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

POST /page.php HTTP/1.1
Host: www.example.com
...
...\r\n\r\n
{"name":"json"}

обратите внимание, что данные сообщения отправляются без имени переменной. есть ли способ получить это?

p.s. попытался сбросить $ _POST, вообще не помогло ..

Спасибо!

Ответы [ 3 ]

5 голосов
/ 29 июня 2011

Вы можете получить тело POST через php://input:

$json_object = json_decode(file_get_contents('php://input'));
/*
object(stdClass)#1 (1) {
  ["name"]=>
  string(4) "json"
}
*/
3 голосов
/ 29 июня 2011

Вы пробовали сбросить $HTTP_RAW_POST_DATA? Бьюсь об заклад, вы можете найти его там.


Примечание: согласно комментарию, это больше не правильное поведение с самыми последними версиями PHP. Вам лучше прочитать содержание 'php://input' Подробнее об этом можно прочитать здесь.

0 голосов
/ 21 февраля 2014

Вам нужен заголовок типа контента для json interprete:

POST /page.php HTTP/1.1
Host: www.example.com
Content-Type: application/json
...
...\r\n\r\n
{"name":"json"}

А теперь используйте $ _POST ['name']

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...