#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 удалось исправить эту ошибку. Дело было в том, что я писал
Комментариев нет:
Отправить комментарий