Как мне решить проблему с этой странной проблемой? Я обновил PHP на своем VPS до 5.6.0, и теперь на этом конкретном скрипте я получаю эти две ошибки, когда я их не получил раньше, и они действительно не дают мне ничего, чтобы пройти.
<br /> <b>Deprecated</b>: Automatically populating $HTTP_RAW_POST_DATA is deprecated and will be removed in a future version. To avoid this warning set 'always_populate_raw_post_data' to '-1' in php.ini and use the php://input stream instead. in <b>Unknown</b> on line <b>0</b><br /> <br /> <b>Warning</b>: Cannot modify header information - headers already sent in <b>Unknown</b> on line <b>0</b><br />
Этот скрипт просто запускает некоторые команды для статуса различных сервисов через shell_exec
и возвращает ответ как JSON. Он не использует никаких почтовых данных или даже содержит $_POST
в файле. Первое, что есть в моем скрипте:
<?php error_reporting(0); header('Content-Type: application/json');
Я прокомментировал эту последнюю строку и все еще получил предупреждение об изменении информации заголовка. Я не знаю, почему эти ошибки возникают, когда они отлично работали в старой версии (что было 5.5.16)
Вы не можете использовать header (), как только текст будет выведен в браузер. Выполняя, как сказано в сообщении об ошибке:
установите 'always_populate_raw_post_data' в '-1' в php.ini и вместо этого используйте поток ввода php: //
вы должны избавиться от этих ошибок.
$HTTP_RAW_POST_DATA
устарел (это вызывает проблему с заголовком)
Попробуй это:
<?php $postdata = file_get_contents("php://input"); ?>
Читайте http://php.net/manual/en/reserved.variables.httprawpostdata.php