Почему сервер не принимает POST запросы?

Сервер должен принимать POST запрос от неподконтрольного мне сервера.
Переменная $_POST просто пустой массив.
Методом научного тыка выяснил, что с Content-Type = "application/x-www-form-urlencoded" всё работает на отлично, однако неподконтрольный сервер посылает запрос с другим заголовком.
Хост NetAngels
Версия PHP 5.5
Код:
$hend=fopen('post.txt', 'a');
	fwrite($hend, "!\n");
	fwrite($hend,implode(",", $_POST)."\n");
	fclose($hend);

Содержимое файла:
!

!


UPD:
Вопрос решён:
Выяснил, что сервер говорит на Content-Type = "application/json"
Решение получилось такое:
$json = urldecode(file_get_contents('php://input'));


Это не чистый json, там остается "ключ =" но это уже решаемо
  • Вопрос задан
  • 2269 просмотров
Решения вопроса 1
Melkij
@Melkij
PostgreSQL DBA
Как говорит мануал, $_POST заполняется только для HTTP Content-Type application/x-www-form-urlencoded или multipart/form-data.

Значит, разбирать вам этот запрос вручную надо. Кратко говоря:
parse_str(file_get_contents('php://input'), $rgInputData);
//var_dump($rgInputData);
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы