[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Проблема с session_start, после заливки на хостинг
DesignerMix
Сделал движок на PHP, при работе на локале юзал Denwer, сейчас залил на хостинг, все ок, кроме работы с сессиями, ошибка вот такая:

Код
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/designer/domains/designermix.f4y.ru/public_html/null/login.php:11) in /home/designer/domains/designermix.f4y.ru/public_html/null/block/auth.php on line 1


В чем косяк мне известно, надо включить было в php.ini output_buffering=on, по умолчанию он output_buffering=off.

Пробелов и символов перед session_start() нет, поэтому проблема не в этом.

Может вы подскажете аналог ну или вдруг кто знает как стартовать сессию без ошибки. PS: Возможности редактировать php.ini у меня нет sad.gif.



Спустя 10 минут (20.06.2009 - 16:43) glock18 написал(а):
Цитата (DesignerMix @ 20.06.2009 - 13:33)
В чем косяк мне известно, надо включить было в php.ini output_buffering=on, по умолчанию он output_buffering=off.

Пробелов и символов перед session_start() нет, поэтому проблема не в этом.


вы себя тоже не поняли? smile.gif

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

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

Спустя 18 минут, 43 секунды (20.06.2009 - 17:01) DesignerMix написал(а):
Натолкнуло smile.gif. Короче проблема была такая, я когда session_start() делал, я его в подключаемый файл поместил, а потом сделал include. Но инклюд идет после вывода некоторых строк, поэтому и ошибка.

Непонятно только почему output_buffering на это влияет...

Спустя 46 минут, 28 секунд (20.06.2009 - 17:48) glock18 написал(а):
Цитата (DesignerMix @ 20.06.2009 - 14:01)
Натолкнуло smile.gif. Короче проблема была такая, я когда session_start() делал, я его в подключаемый файл поместил, а потом сделал include. Но инклюд идет после вывода некоторых строк, поэтому и ошибка.


smile.gif да, конечно. А вот output_buffefing влияет очень просто:

обычно некоторые действия (установка header, старт сессии) необходимо выполнять до того, как данные будут отправлены браузеру.

То есть, если ты делаешь echo - это означает, что сервер должен уже отправлять данные. при первом echo сервер отправит header'ы, поэтому их установка после echo бессмысленна (новые не будут отправлены).

Что делает output_buffering? переводится как "буферизация вывода" или "буферизация исходящего потока". проще - то что ты отправляешь на вывод при помощи echo и подобных функций сначала буферизуется - отправляется в память. Размер буфера имеет максимальный размер, по достижении которого происходит отправка, в противном случае отправка происходит после отработки скрипта. Соответственно, при включенной буферизации заголовки не сразу отправляются к браузеру, а только перед фактической отправкой данных (превышен размер буфера, конец работы скрипта). И именно поэтому, буферизация позволяет менять заголовки даже после echo, print и т.п.

Спустя 1 час, 2 минуты, 47 секунд (20.06.2009 - 18:51) DesignerMix написал(а):
о, теперь ясно.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.