PHP - Cannot modify header information - headers already sent
Схема работы протокола HTTP такова: сначала отправляются служебные заголовки (код ответа, cookie, сессия, срок кеширования и так далее), затем текстовый контент. После того как начался вывод контента, заголовки дополнить или изменить невозможно.
Ошибка "Cannot modify header information - headers already sent by script.php:21" означает что в скрипте script.php в строке №21 начался вывод контента, и вызов фунции header невозможен. \\
Чаще всего ошибка возникает после правки скриптов в неподходящих редакторах (Блокнот, и т.д.)
В качестве решения:
- Используя специализированный редактор, пересохраните файл (что указан в тексте ошибки) в кодировке UTF-8 без BOM (например Notepad++).
- Проверьте, нет ли пустых строк или пробелов перед первым тегом <?
- Отключите вывод ошибок и предупреждений (пропишите display_errors = Off в php.ini или .user.ini).