Исправляем ошибку headers already sent by

Исправляем ошибку headers already sent by

От автора: в этом уроке мы рассмотрим, пожалуй, одну из наиболее распространенных ошибок, с которой сталкиваются при программировании на PHP. Эта ошибка возникает при работе с функциями, связанными с отправкой заголовков. При этом мы можем столкнуться с несколькими вариантами сообщений об ошибке, но причина у них будет одинакова – заголовки уже отправлены (headers already sent).

скачать исходникискачать урок

В видео версии урока вы найдете подробное описание вариантов возникновения данной ошибки. Здесь же мы сформулируем вкратце причины и способы решения данной ошибки.

Итак, ошибка эта может возникнуть в случаях, когда в коде вы используете одну из функций, связанных с отправкой заголовков: header(), session_start(), setcookie().

Практический курс по созданию веб-приложения на PHP & MySQL с нуля!

Изучите курс и создайте ваше первое приложение на PHP всего за 3 дня!

Изучить курс

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

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

собственно вывод, который прописан в коде: это может быть пробел, перенос строки, HTML-код и т.д.

вывод в подключаемых файлах

сохранение документа в кодировке UTF-8 с BOM. Это наиболее неочевидная проблема и здесь стоит помнить, что при использовании юникода файл должен быть сохранен в кодировке UTF-8 без BOM.

На этом мы завершим текущий урок. Удачи и до новых встреч!

Разработка веб-приложения на PHP

Создайте веб-приложение на PHP на примере приема платежей на сайте

Получить

Метки:

Похожие статьи:

Комментарии Вконтакте:

Комментарии Facebook:

Комментарии (7)

  1. Sam

    Очень поучительный урок!!! Вообще тема ошибок очень интересная и нужная так как зачастую просто не понимаешь почему есть эта ошибка и начинает кепеть голова и работа стопориться на часы а то и на дни, а теперь хотябы с этой ошибкой будет понятно. Побольше бы на эту тему уроков. БОЛЬШОЕ ВАМ СПАСИБО мастера Webformyself!!!

  2. Грачья

    Да я так же заметил что даже не регистрировавшийся на сайте над моим сообщение появилось ава которую я загружал в другом сервисе (название не помню). Не подскажите как называется сервис?

  3. Александр

    Послушал Ваш видеоурок «Исправляем ошибку headers already sent by», однако решения проблемы так и не нашел.
    Пытаюсь вывести графики JPGraph, но тщетно. При использовании стандартного примера из дистрибутива получаю сообщение: «JpGraph Error: HTTP headers have already been sent.
    Caused by output from file test.php at line 6.» При этом по вашему совету убрал все, что можно и даже тег . Код php начинается сразу после :

    <?php require_once ('src/jpgraph.php');
    require_once ('src/jpgraph_scatter.php');

    Может быть у Вас есть решение? Кроме того, на странице сайта должны быть какие-то надписи, или это исключено?

    • Андрей

      Если PHP говорит, что заголовки уже отправлены, значит так оно и есть. Поэтому нужно искать вывод в браузер. Решения у меня нет, поскольку Вашего кода, который можно запустить, у меня нет.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Я не робот.

Spam Protection by WP-SpamFree