Warning: Cannot modify header information - headers already sent in

При неправильном использовании функции header() есть риск получить ошибку:
Warning: Cannot modify header information - headers already sent in

Что я имею введу под фразой "неправильном использовании"? Ниже попробую объяснить.

Предназначение функции header() - отдавать HTTP заголовки. Перед выполнением данной функции, браузеру ни чего передавать нельзя, то есть попытка передать, например, строку при помощи echo до отдачи заголовка (пример неправильного кода):
echo 'Text'; // С начало выводим текст
header('Content-Type: text/html; charset=utf-8'); // Затем отдаем заголовок

Приведет к ошибке. Правильно так:
header('Content-Type: text/html; charset=utf-8'); // С начало отдаем заголовок
echo 'Text'; // Затем выводим текст

echo - это не единственный вариант вывода информации на экран, неправильным использованием функции функции header(), будет считаться с любым вариантом, до отдачи заголовка.

Приведу еще один пример неправильного использования header():
<html>
<?php
header('Content-Type: text/html; charset=utf-8');

Тут следует сделать так:
<?php
header('Content-Type: text/html; charset=utf-8');
?>
<html>