Предупреждение PHP: невозможно изменить информацию заголовка
English version: PHP Warning: Cannot modify header information
Предупреждение PHP: невозможно изменить информацию заголовка — заголовки уже отправлены…
Иногда вы можете увидеть это сообщение в журнале ошибок сервера или отобразить его на веб-странице. Это расстраивает и похоже, что что-то не так с PHP-скриптом, упомянутым в сообщении. Фактически это сообщение указывает на проблему (ошибку) в другом скрипте, плагине или теме. Вы можете получить это сообщение, если используете плагин с ошибками и включено отображение ошибок PHP , чего обычно быть не должно.
Это сообщение появляется, когда какой-то фрагмент PHP-кода на веб-сайте генерирует выходные данные, которые обычно представляют собой предупреждающее сообщение PHP, которое вообще не следует отправлять и показывать в браузере пользователя. И этот вывод отправляется до того, как заголовок веб-страницы будет сгенерирован и отправлен в браузер пользователя. Заголовок веб-страницы может быть пустым или содержать дополнительную информацию, например файлы cookie.
Независимо от того, пуст заголовок или нет, он должен быть отправлен перед любым содержимым страницы.
Если плагин WordPress с ошибкой генерирует предупреждение PHP до того, как другие плагины отправят заголовки в браузер, это приводит к ошибке сервера с сообщением «Предупреждение PHP: невозможно изменить информацию заголовка — заголовки уже отправлены…» .
Такое сообщение может ввести в заблуждение любого, поскольку в нем не указано, какой скрипт или плагин вызвал эту ошибку. Когда веб-сервер обнаруживает любой вывод, сгенерированный плагином, без отправленного заголовка, он автоматически создает заголовок и отправляет его в браузеры, поэтому все другие плагины, которые не ожидают такого поведения, не могут отправлять свои заголовки, если им это необходимо. .
Как решить эту проблему в контексте использования WP Cerber Security
- Отключите отображение ошибок в настройках PHP панели управления вашим хостингом. Если у вас нет доступа к настройкам PHP, обратитесь за помощью к своему хостинг-провайдеру.
- Отключите отображение ошибок PHP в настройках WP Cerber на странице администрирования Hardening.
- В основных настройках WP Cerber установите для параметра «Загрузить механизм безопасности» значение «Стандартный режим» или «Расширенный режим».
- Проверьте, определена ли константа WP_DEBUG в файле wp-config.php. Закомментируйте строку двойными косыми чертами // или просто удалите всю строку. Вот как это должно выглядеть:
// define( 'WP_DEBUG', true );
// define( 'WP_DEBUG', 1 ); - Добавьте следующие строки в начало файла wp-config.php:
@ini_set( 'display_errors', 0 );
@ini_set( 'log_errors', 1 );
Может ли WP Cerber или WordPress быть причиной проблемы?
Нет. Единственный код, который может вызвать эту проблему, — это устаревший/содержащий ошибки плагин или активная тема. Как найти первопричину? Проверьте журнал ошибок сервера. И пожалуйста избавьтесь от устаревших плагинов.