Задать вопрос
Vagrant0610
@Vagrant0610
PHP разработчик

Как исправить ошибку PHP «Cannot modify header information — headers already sent by»?

Здравствуйте! Как исправить ошибку PHP "Cannot modify header information - headers already sent by"? Все ответы в интернете на эту тему в моем случае бессильны. Так как сводятся к тому, что необходимо удалить какие-то лишние символы в файлах, но я проверил и лишних символов нигде не нашел. К тому же ошибка происходит уже после загрузки шапки сайта, в процессе вывода контента страницы. Сайт на WordPress. При ошибке ссылается на файл header.php в теме. На вторую строку в которой написано только это: <?php global woocommerce; ?>. Woocommerce на сайте не установлен. Тема многофункциональная (называется Avada). При удалении проблемной строки начинает ссылаться на следующую строку с php кодом (в этом же файле), в которой тоже ничего не выводится. Ошибка появляется при редиректе после регистрации на определённую страницу сайта, на которой написан PHP код и выполняется через функцию eval(). При обычном переходе на эту страницу, все работает нормально. При логине - редиректе на эту страницу тоже работает, а так же работает когда при регистрации на копии сайта происходит редирект на эту страницу. Ошибки происходят в базовом файле pluggable.php (wp-includes)на строках: 920, 921, 922. Буду очень благодарен за помощь! Пишу сюда в последнюю очередь так как с проблемой вожусь уже почти неделю и все что удалось выяснить описал выше. Заранее спасибо тем кто пытается помочь.
  • Вопрос задан
  • 4973 просмотра
Подписаться 1 Простой 3 комментария
Решения вопроса 2
azerphoenix
@azerphoenix
Java Software Engineer
Здравствуйте!
Что самое интересное - такая проблема у меня тоже встречалась и как показывает опыт может быть она по разным причинам....
Чтобы устранить ее попробуйте следующие варианты:
1) наличие лишних символов (которые вы уже проверили)
2) наличие пробела (в самом начале)
3) поврежденные или недостающие файлы темы (синхронизируйте при помощи Total commander и посмотрите, что отличается или чего не хватает).
Обычно, такая проблема наблюдается, если вы скачали обнуленную тему или плагин бесплатно, а горе "хакеры" поставляли кучу обфусцированного рнр кода в файлы темы... Посмотрите в header.php или в файл, которые он может вызывать. Посмотрите в functions.php Просканируйте плагином Wordfence и Theme Check и проверьте тему на наличие ошибок и вредоносного кода... Проверьте корректность подключения header & footer.php. Попробуйте обновить тему до актуальной версии. Попробуйте поочередно отключать плагины и смотрите, пропадет ли проблема (иногда проблема может быть имено в плагинах). Проверьте файл wp-config.php
Ответ написан
Vagrant0610
@Vagrant0610 Автор вопроса
PHP разработчик
Проблема решена! Была она в плагине WP Super Cache. На время доработки сайта я отключил функцию кеширования в плагине. В следствии чего у меня появлялась такая ошибка. При отключении плагина, ошибка не пропадала. Выяснилось это самым грубым образом. Я сделал копию сайта до того как начал заниматься доработками, в копии всё работало. После чего, когда надежда была потеряна, последним рывком было просто взять и грубо заменить все файлы в wp-content файлами копии. В числе этих файлов, вне папки плагинов и тем был файл под названием wp-cache-config.php. В нём находятся генерированные настройки плагина WP Super Cache. И после замены всех файлов в папке wp-content, всё заработало. Ну а далее методом исключения я выяснил что вышеуказанный файл с настройками, содержал в себе как раз отключённую настройку кеширования. Которую я благополучно отключил в середине разработки, что бы она не мешала. После включения этой настройки, всё снова заработало но уже с моими файлами и папками. Надеюсь мой опыт пригодится кому-то, так как потратил на это я почти месяц) занимался даже на работе, дома до 4 утра, на выходных, под коньяк) в общем, дай Бог всем терпения)
P.S.: Появилась мысль написать небольшой плагин для логирования действий с сайтом, что бы не забывать такие мелочи, но уверен уже что-то такое есть)
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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