@danilapon

Почему данные входящего запроса не сохраняются в файл?

Добрый! Хочу увидеть какие данные и в каком формате отдает вебхук сервиса, поставил вывод входящих данных в файл а он всегда пустой. После этого решил проверить на тестовой дериктории данный код:

$path = __DIR__ . '/Response';
$headers = getallheaders();
$response_body_as_string = file_get_contents('php://input');
$data = serialize($headers);
file_put_contents($path, $data . "\n\n");
file_put_contents($path, $response_body_as_string, FILE_APPEND);
echo $data . "\n\n";
echo $response_body_as_string;


В директории только index.php (его содержимое выше) и пустой файл Response. Открывая данную директорию в браузере я получаею эхо хедеров, что лежат в $data но файл Response по прежнему пуст. В чем может быть причина?
  • Вопрос задан
  • 101 просмотр
Решения вопроса 1
ipatiev
@ipatiev Куратор тега PHP
Потомок старинного рода Ипатьевых-Колотитьевых
Если РНР не может записать информацию в файл, он всегда сообщает - по какой причине.
Вам надо всего лишь посмотреть сообщение об ошибке. На нормально настроенном сервере ошибки обычно пишутся в лог файл.
(Скорее всего файл создан одним пользователем, а скрипт запускается другим, а права не выставлены. Но гадать в любом случае бессмысленно, надо прочитать сообщение об ошибке).

Как вариант, что-то ещё дергает этот скрипт. Для надёжности, я бы добавил FILE_APPEND в оба вызова.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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