Help
Posted By Gregory

PHP Предупреждение: Не удается изменить информацию в заголовке


English version: PHP Warning: Cannot modify header information


Предупреждение PHP: Невозможно изменить информацию заголовка – заголовки уже отправлены в …

Иногда вы можете увидеть это сообщение в журнале ошибок сервера или отобразить его на веб-странице. Это расстраивает и выглядит как-то не так с PHP-скриптом, который упоминается в сообщении. Фактически, это сообщение указывает на проблему (ошибку) в другом скрипте, плагине или теме. Вы можете получить это сообщение, если используете плагин с ошибками и отображение ошибок PHP включено, чего обычно не должно быть.

Это сообщение появляется, когда какой-то фрагмент кода PHP на веб-сайте генерирует вывод, который обычно представляет собой предупреждение PHP, которое вообще не следует отправлять и отображать в браузере пользователя. И этот вывод отправляется до того, как заголовок веб-страницы генерируется и отправляется в браузер пользователя. Заголовок веб-страницы может быть пустым или содержать дополнительную информацию, например файлы cookie.

Независимо от того, является ли заголовок пустым или нет, он должен быть отправлен до любого содержимого страницы.

Если плагин WordPress с ошибками генерирует предупреждение PHP перед тем, как другие плагины отправляют заголовки в браузер, это приводит к ошибке сервера с сообщением «Предупреждение PHP: невозможно изменить информацию заголовка – заголовки уже отправлены в …» .

Такое сообщение может ввести в заблуждение любого, потому что оно не сообщает, какой скрипт или плагин вызвал эту ошибку. Когда веб-сервер обнаруживает любой вывод, сгенерированный плагином без отправленного заголовка, он автоматически создает заголовок и отправляет его в браузеры, поэтому все другие плагины, которые не ожидают такого поведения, не могут отправлять свои заголовки, если им нужно ,

Как решить эту проблему в контексте использования WP Cerber Security

  1. Отключите отображение ошибок в настройках PHP панели управления хостингом. Если у вас нет доступа к настройкам PHP, обратитесь за помощью к вашему хостинг-провайдеру.
  2. Отключите отображение ошибок PHP в настройках WP Cerber на странице администрирования Hardening.
  3. В разделе «Основные параметры WP Cerber» установите «Загрузить механизм безопасности» в «Стандартный режим» или «Расширенный режим».
  4. Проверьте, определена ли константа WP_DEBUG в файле wp-config.php. Закомментируйте строку двойными косыми чертами // или просто удалите всю строку. Вот как это должно выглядеть:
    // define( 'WP_DEBUG', true );
    // define( 'WP_DEBUG', 1 );
  5. Добавьте следующие строки в начало файла wp-config.php:
    @ini_set( 'display_errors', 0 );
    @ini_set( 'log_errors', 1 );

Может ли WP Cerber или WordPress быть причиной проблемы?

Нет. Единственный код, который может вызвать эту проблему, это либо устаревший / глючный плагин, либо активная тема. Как найти основную причину? Проверьте журнал ошибок сервера. И, пожалуйста, избавьтесь от устаревших плагинов.


I'm a team lead in Cerber Tech. I'm a software & database architect, WordPress - PHP - SQL - JavaScript developer. I started coding in 1993 on IBM System/370 (yeah, that was amazing days) and today software engineering at Cerber Tech is how I make my living. I've taught to have high standards for myself as well as using them in developing software solutions.

View Comments
There are currently no comments.