Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008 Откуда: Москва
Помог: 57 раз(а)
В связи с участившимися случаями этого заболевания, думаю, стоит написать небольшую инструкцию, как от этого лечиться. Ну, лекарство номер 1 - это Гугл и Яндекс, но кому лень анализировать многочисленные рутинные обсуждения этой проблемы, вот вам краткая памятка, которая все вопросы должна снимать.
Итак, у на появилась такая вещь:
Cannot send session cookie - headers already sent by (output started at script1.php:1 [ * ]) in script2.php on line 2 [ ** ]
Нам сообщают, что заголовки уже были посланы и больше нельзя. Заголовки могут встречаться только один раз в начале документа.
Написано на какой строке в каком скрипте начался вывод в браузер(отмечано пушистой звездочкой) и на какой строке мы попытались послать заголовок (отмечено 2 пушистыми звездочками).
После вывода информации в браузар слать заголовки нельзя. Остается только осмыслить, что такое вывод в браузер. Да-да, если вы это читаете, то вы это не осмыслили.
* команды вывода php (echo, print...)
* различные warnigs, notices, которые произошли в результате других операций в скрипте.
* ЛЮБЫЕ СИМВОЛЫ, расположенные до <?php. Это и пробелы, и энтеры, и невидимый символ BOM.
Википедия про BOM пишет:
Этот способ позволяет различать UTF-16LE и UTF-16BE, поскольку символа U+FFFE не существует. Также он иногда применяется для обозначения формата UTF-8, хотя к этому формату и неприменимо понятие порядка байтов. Файлы, следующие этому соглашению, начинаются с таких последовательностей байтов:
UTF-8
EF BB BF
UTF-16BE
FE FF
UTF-16LE
FF FE
UTF-32BE
00 00 FE FF
UTF-32LE
FF FE 00 00
Короче, скрипты, написанные в UTF-8 следует сохранять без BOM и во многих текстовых редакторах есть эта возможность. Всё.
Muxa
Отправлено: 09 Мая, 2012 - 11:29:51
Частый гость
Покинул форум
Сообщений всего: 247
Дата рег-ции: Март 2012 Откуда: Россия, Тверь
htaccess создать одна минута файл с именем .htaccess - туда вписываешь строку с дефолтной кодировкой
imya
Отправлено: 11 Сентября, 2012 - 21:26:49
Участник
Покинул форум
Сообщений всего: 1473
Дата рег-ции: Сент. 2012 Откуда: Запорожье, Украина
Помог: 19 раз(а)
Наконец-то решил зарегистрироваться, а то везде проблема эта описана одинаково и всё равно ничего не помогает. Итак, суть проблемы: есть тестовое задание(сайт с регистрацией, формой входа, личным кабинетом и формой обратной связи), в регистрации косяки, личный кабинет не особо выводится из-за того, что в нужном файле выскакивает ошибка вышеописанная, привожу коды файлов.
Да, забыл, все файлы через notepad++ преобразовал в utf-8 без BOM.
index.php
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at Z:\home\smkvizion\www\index.php:7) in Z:\home\smkvizion\www\privat_akk.php on line 1
Success
Ещё, вот вопрос, какой-то Success выводится непонятно откуда и в кабинете и в регистрации, если не заполнены поля, на ошибки мускула не похоже, откуда она выплывает?
Спасибо за ответ.
А потом при if ($_GET['cab']==1) подключается ваш privat_akk.php. То есть к индексному добавляется еще и privat_akk.php.
Хорошо, тогда как мне реализовать, чтобы при клике на соответствтвующий пункт меню у меня выводилось соответствующее содержимое. Вот сейчас для проверки убрал if ($_GET['cab']==1)
require('privat_akk.php');
и ошибка эта исчезла.
После работы мозг уже туго соображает, а сдавать нужно, вот и решил к вам обратиться за помощью.
И при клике на личный кабинет в QUERY_STRING нет private_akk.php, а есть index.php?cab=1
Когда нормальный человек, уезжая из дома одевает на жену пояс верности, веб-дизайнер ставит на нее счетчик...
Tox
Отправлено: 11 Сентября, 2012 - 22:32:00
Посетитель
Покинул форум
Сообщений всего: 314
Дата рег-ции: Нояб. 2011 Откуда: Россия
Помог: 0 раз(а)
imya
в private_akk.php сессию_старт уберите.
----- In Console We Trust. Code hard. Or die.
imya
Отправлено: 11 Сентября, 2012 - 22:54:46
Участник
Покинул форум
Сообщений всего: 1473
Дата рег-ции: Сент. 2012 Откуда: Запорожье, Украина
Помог: 19 раз(а)
Так мне ведь нужно проверять переменную сессии и если она совпадает со значением из базы - выводить личный кабинет.
Убрал старт сессии, теперь title появилась эта же ошибка.
Когда нормальный человек, уезжая из дома одевает на жену пояс верности, веб-дизайнер ставит на нее счетчик...
Проклятый принц
Отправлено: 09 Апреля, 2013 - 17:29:25
Гость
Покинул форум
Сообщений всего: 118
Дата рег-ции: Февр. 2013
Помог: 0 раз(а)
[+]
Добрый день, господа. Я сделал все так, как было написано. Перевёл с utf8 на utf8 без BOM, работать, конечно же, стало, но взезде появились всякие закорючки. Извините, но кто подскажет, как нормально настроить кодировку сайта?
root_x
Отправлено: 25 Октября, 2014 - 14:32:41
Новичок
Покинул форум
Сообщений всего: 0
Дата рег-ции: Окт. 2014
Самыми распространенными ошибками, которые выдает РНР при попытке работать с сессиями, являются такие:
Две из них,
Warning: Cannot send session cookie - headers already sent
Warning: Cannot send session cache limiter - headers already sent
вызваны одной и той же причиной, решение описано...
Покинул форум
Сообщений всего: 4
Дата рег-ции: Дек. 2014
Помог: 0 раз(а)
Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /var/www/u0044573/data/www/eurotel24.ru/index.php:1) in /var/www/u0044573/data/www/eurot el24.ru/index.php on line 2
что нужно менять здесь ?
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.