Страницы

Поиск по вопросам

вторник, 28 января 2020 г.

Проблема с сессией: Cannot send session cache limiter - headers already sent

#php #сессия


Изначально когда проектировал сайт, работал с сессиями только на одной странице,
где объявлял session_start(); Потом понадобилось распространить эту функцию на весь
сайт. Для этого я разместил session_start() в файл config.php, который в свою очередь
подключается к каждому файлу php сайта. Вот тут-то и возникли проблемы...

Структура сайта такова (заголовочные файлы):


config.php
header.php
left.php
footer.php


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


index.php
shopingcart.php
contact.php


И файлы в которых ошибка возникает:


faqs.php
productdetail.php
checkout.php


Как можно побороть ошибку данную? 


  Warning: session_start() [function.session-start]: Cannot send session cache limiter
- headers already sent (output started at
  S:\home\localhost\www\web_shop\faqs.php:1) in
  S:\home\localhost\www\web_shop\config.php on line 2

    


Ответы

Ответ 1



Ошибка говорит о том, что функция не может установить заголовки ответа HTTP, так как уже был вывод данных в тело ответа. Функция header (которую в свою очередь вызывает session_start) может использоваться только до вывода тела ответа. Чтобы исправить ошибку разместите подключение config.php в самом начале текста файла. Если это не помогло или так и есть уже, то пересохраните файл без BOM.

Ответ 2



Может кому то и поможет! Открыл файл в Notepad++ и сохранил его с кодировкой UTF-8 без BOM. И перезалил файл на хостинг. После обновление страницы, предупреждение исчезла! Спасибо всем за наводку :)

Ответ 3



Благодаря помощи, товарища ToRcH565 удалось исправить эту ошибку. Дело было в том, что я писал

Комментариев нет:

Отправить комментарий