Главная » Статьи » Программирование [ Добавить статью ]

Ошибка PHP - Headers already sent by

Если вы писали что-либо на PHP и увидели ошибку "headers already sent by", то не пугайтесь.

Причина естественно одна: на вывод в html документ был послан какой-либо символ ещё до того, как строчка с ошибкой попыталась добавить ещё один header в документ. Этого делать нельзя и в общем-то оно точно Вам не нужно)

Пути решения:
  1. Проверьте, нет ли лишних знаков (например пробела) перед началом PHP кода (к примеру перед "< ?" в первой строке документа), или наоборот, после него (после ? >).
  2. Убедитесь, что кодировка вашего файла не UTF с BOM, которая добавляет байты в начало документа. Эту ошибку порой особенно тяжело обнаружить и можно поломать голову) На самом деле нужно выбрать кодировку UTF8 без BOM.
  3. Попробуйте открыть файл в другом редакторе, потому что вначале всё равно могут быть лишние символы.
  4. Если все это не помогло - ищите ошибку, - перенесите все добавления хеадеров в места, которые находятся до вывода первого символа в тело документа.

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

Добавлено: 02.06.2010 | Просмотров: 4942 | Рейтинг: 0.0/0 |
Теги: PHP, ошибка


Комментарии (3)
0   Спам
3. Донат   25.07.2013   18:14 [Материал]
Спасибо! У меня было нарушено сразу два первых пункта!
0   Спам
2. Алексей   14.12.2011   11:36 [Материал]
Спасибо за статью, она помогла не прямо, а косвенно, т.к. послужила началом поиска пути к решению. А решение у меня оказалось именно в конце - проверять даже пробелы надо не только до открывающего, но и после закрывающего РНР тега, в частности, в файлах, указанных в INCLUDE.
Ответ: Спасибо за информацию. Да, закрывающий php тег "?>" в конце документа вообще лучше не ставить, потому что символы за ним могут привести к такой ошибке. А его наличие не обязательно.
0   Спам
1. Вера   12.09.2011   13:50 [Материал]
"Убедитесь, что кодировка вашего файла не UTF с BOM, которая добавляет байты в начало документа. Эту ошибку порой особенно тяжело обнаружить и можно поломать голову) На самом деле нужно выбрать кодировку UTF8 без BOM". - спасибо за совет, помогло, перекодировала в ANSI и все получилось!!!
Имя *:
Email *:
Код *: