Не сохраняются куки. Что не так.
Ошибка
Warning: Cannot modify header information - headers already sent by (output started at blocksSite/main_noauth.php:4) in blocksSite/main_noauth.php on line 58
Ответы
Ответ 1
Общение WEB-сервера с клиентом в данном случае происходит по протоколу HTTP. HTT
включает в себя HTTP заголовки и тело ответа. При этом заголовки обязательно следуют перед телом ответа – того требует стандарт.
PHP же в свою очередь в процессе работы должен сформировать и заголовки и тело ответа
Даже если Вы не задаете ни одного заголовка, то PHP сам устанавливает все необходимы
заголовки для ответа клиенту. При этом данные, которые необходимо отдать клиенту он записывает сначала в буфер, но если он начал писать в буфер тело ответа, то заголовки он уже никак не может туда записать и встретив попытку записи заголовков ответа уже после того, как начало формироваться тело ответа PHP выдает ошибку:
Warning: Cannot modify header information - headers already sent by (output started at ...
Это может быть следствием следующих причин:
Перед установкой заголовков был вывод тела ответа. При этом вывод может быть осуществлен как средствами шаблонизатора, так и через функции echo или print
// вывод средствами шаблонизатора
"; // вывод средствами оператора
header( "Content-Type: text/html; charset=utf-8" );
Вы можете банально ошибиться и поставить перед [пробел][перенос строки]
Файл index.php
";
header("Content-Type: text/html; charset=utf-8");
ob_end_flush();
Можно настройками php.ini принудить PHP сперва наполнять буфер данными до определенног
размера, и лишь потом отдавать содержимое буфера клиенту, но в этом случае превысив размер буфера Вы увидите Выше описываемую ошибку.
output_buffering = 14096
Ответ 2
у вас что-то эхнуто перед отправкой хедера ...main_noauth.php on line 58.... Посмотрите в строчке 58
Ответ 3
В php.ini
output_buffering = On
И всё работает
Комментариев нет:
Отправить комментарий