Место для вас

Ошибка Cannot modify header information

Ошибка Cannot modify header information - headers already sent by - самая загадочная для начинающих программистов. Можно часами биться над кодом, вылизав каждый символ, но так и не найти причину. А решение очень простое и поможет избежать вам бессонных ночей в поисках решения.

Первая причина ошибки Cannot modify header information:

Это самая самая распространенная причина. Вывод информации перед использованием функции header() или setcookie()


<?php
   echo "Hello, World!";
   header("Location: file.php"); 
?>

<html>
<head>
</head>
<body>
<?php
   setcookie('cookie_name', 'hello word');
?>
</body>
</html>

Как видно тут сперва выводится данные на экран, а потом используются функции header() или setcookie().

Решение: использовать функции header() или setcookie() перед выводом какой-либо информации.

Вторая причина ошибки Cannot modify header information:

Вроде все хидеры или сеткукисы строят вначале документа, а мы все равно плучам ошибку. Относительно первой причины - эта причина не очевидна.

Смотрите:

  • - Отправка данных уже началась, так как перед
  • - ли подключается другой файл, в котором идет вывод какой-либо информации функциями echo или print, или с пробелом или пустой строкой вначале.

Решение: Нужно ОЧЕНЬ ВНИМАТЕЛЬНО проверять все файлы на наличие пробела или пустрой строки и удалять их, а так же что делают подключаемые файлы.

Третья причина ошибки Cannot modify header information:

Эта самая жестокая и убийственная причина.

Заметить этот дополнительный пробел нереально сложно. Дело в том, что ваш PHP файл вы можете создать в кодировке UTF-8 (к примеру), и некоторые редакторы кода в начало фашего файла запишут дополнительный специальный символ, являющийся идентификатором UTF-8. В редакторе он отображаться не будет, а вот сервер, который будет обрабатывать ваш файл, может его принять просто за одиночный символ и вывести его сразу после заголовков. Этот символ может вообще никак не отобразиться в браузере, но если посмотреть исходный код страницы, можно увидеть дополнительный отступ или знак "?" перед основным содержимым. Соответственно, если такой символ выводится, а в файле есть функция Header(), то это и приведет к появлению ошибки Cannot modify header information. Увидеть этот скрытый символ можно, открыв файл в обычном блокноте.

Решение: Чтобы избавиться от этой проблемы, в настройках вашего редактора смените кодировку вашего файла на UTF-8 без bom.

Тут я рассмотрел 99% появления этой ошибки и их решения. Оставшийся 1% - это неправильные настройки сервера или PHP интерпретатора. Но это уже вопрос к хостеру.


Место для вас

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

кликните на картинку,
чтоб обновить код

Что за сайт

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

Будь в курсе

Интересненько

Вверх