file_get_contents ('php: // input') не работает. Пусто - NULL - PullRequest
2 голосов
/ 03 мая 2020

У меня возникла эта проблема за последние 12 часов, я прочитал около 50 статей, здесь 50 вопросов, я не могу ее исправить. Я буду более точным, я хочу, чтобы другие тоже получили решение.

Проблема: У меня есть учетная запись хостинга в namech **** и локальный сервер. Linux там и Xampp Windows здесь, это работает только на моем локальном сервере.

test.php:

<?php    
    $data = json_decode(file_get_contents("php://input"), true);
        var_dump($data);
?>

Почтовый запрос:

POST /test.php HTTP/1.1
Host: myweb.io
Content-Type: application/json
Content-Length: 77

{
  "test": "product/created",
  "other": "https://google.com/"
}

Я использую REQBIN для проверки запроса POST.

Это ответ на моем хостинге:

HTTP/1.1 200 OK
Date: Sun, 03 May 2020 17:04:33 GMT
Server: Apache
X-Powered-By: PHP/7.4.5
Content-Encoding: gzip
Vary: Accept-Encoding
Transfer-Encoding: chunked
Content-Type: text/html; charset=UTF-8

NULL

Это правильный ответ на мою локальную среду с использованием XAMPP

HTTP/1.1 200 OK
Date: Sun, 03 May 2020 17:15:19 GMT
Server: Apache/2.4.41 (Win64) OpenSSL/1.1.1c PHP/7.4.3
X-Powered-By: PHP/7.4.3
Content-Length: 94
Content-Type: text/html; charset=UTF-8

Array
(
    [test] => product/created
    [other] => https://google.com/
)

Вещи, которые я пробовал:

  • Установите для allow_url_fopen значение 1 или 0.
  • Понижение PHP версия (пробная версия 7.1,2,3,4)
  • Удаление сертификата SSL
  • Миллионы вещей в PHP .INI
  • Удаление htaccess
  • Удаление некоторых php модулей / расширений ОБНОВЛЕНИЕ:
  • Файл индивидуальный, проверено, что Функция выполняется только один раз
  • Я проверяю, нет ли перенаправлений. (Настройки Htaccess, cPanel)

1 Ответ

0 голосов
/ 04 мая 2020

Я исправляю это, не знаю как, но я думаю, что решение было: полностью удалите мой htaccess, без перенаправлений (с http на https). Не проверяйте с помощью reqbin, проверяйте его с php чистым кодом или PostMan.

...