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 на странице администрирования защиты.
  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.