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

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

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

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

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

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

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

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

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

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

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

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

Курс по программированию на языке PHP

Изучите PHP с нуля до результата!

Смотреть курс

Метки:

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

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

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

  1. Sam

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

  2. Грачья

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

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

Ваш 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