почему на сервере session_start() работает, если до нее есть вывод в броузер?

Статус
В этой теме нельзя размещать новые ответы.

vilk108

Профессор
Регистрация
17 Дек 2007
Сообщения
174
Реакции
39
есть сайт на котором работает session_start() , которая подключается в середине странице, а до нее выводится куча html в броузер. Когда устанавливаю этот сайт на денвере то сессия не стартует, а выводится ошибка стандартная - произошел вывод в броузер до сессии. Приходитса session_start() перемещять в начало страници(На денвере). Вопрос каким образом на сервере так сделано что session_start() можно ставить после того как броузеру послан заголовок?
 
Сервер настроен на "гашение" всех ошибок и предупреждение, что есть не правильно. По идее, толку от session_start после того как браузер что-то вывел не будет.

Так что или делай session_start в самом начале скрипта или если это не возможно, то выкручивайся с помощью ob_start().
 
Никак.
Вывод в браузер означает то, что PHP сам завел сессию. Отослав хоть одну запятую в браузер, он тем самым отсылает заголовки на клиента.
А потом вы еще раз пытаетесь отправить ручками измененные (ч-з session_start()).
 
да действительно отключен вывод ошибок в броузер.
А вот я загрузил страницу на сервер, с таким содержанием
<?
ini_set("display_errors","on");
error_reporting(E_ALL);

?>
<hr />
<?
session_start();
?>
а ошибка всеравно не выводится. Почему? Ведь включил вывод всех ошибок. На денвере сразу ругаетса Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at X:\home\main\www\untitled1.php:7) in X:\home\main\www\untitled1.php on line 8
 
ты уверен, что на сервере cookie session включено?
 
cookie и session на сервере точно включены
 
я имел в виду session.use_cookies = 1 в php.ini?
 
Да. Нашел через phpinfo - session.use_cookies On
 
А output_buffering =?
 
output_buffering=4096
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху