Ошибка при работе с gzip

jenia

Новичок
Ошибка при работе с gzip

У меня при использовании такого кода:
PHP:
ob_start("ob_gzhandler");
...вывод страницы...

Возникает ошибка вида:
Warning: (null)() [ref.outcontrol]: output handler 'ob_gzhandler' cannot be used twice in Unknown on line 0
В мануале написано, что такая ошибка может возникать при одновременном использовании ob_gzhandler() и zlib.output_compression. Но я ведь не использую zlib.output_compression.
Помогите пожалуйста разобратся с данной проблемой.
 
'ob_gzhandler' cannot be used twice
у тебя там случайно два раза ob_gzhandler нет?

при использовании ob_gzhandler() при zlib.output_compression = On другую ошибку пишет...
Warning: ob_start(): output handler 'ob_gzhandler' conflicts with 'zlib output compression' in ob_start.php on line 3
так что это не то....
 

jenia

Новичок
Нет, ob_gzhandler два раза сто процентов нет. Уже проверял неоднократно.
 

kvf77

Red Devil
jenia

так - тебя отправить в FAQ в раздел "Ничего не работает что делать?" твои 100% мы уже наизвусть знаем - каждый второй на 100% уверен. мы не медиумы определять на расстоянии проблемы - короче - чиай FAQ и задавай вопрос правильно
 

jenia

Новичок
kvf77
Ты хочешь сказать, что в 10-20 строчках кода я не могу заметить два использования ob_gzhandler? Ну не слепой же я!
Кстати, ошибка выдаётся только на localhost, на хостинге ошибки нет.
Во многих статьях по gzip пишется, что для проверки работы gzip нужно выполнить такой код:
echo $_SERVER['HTTP_ACCEPT_ENCODING'];
Он должен выводить что-то такого вида: gzip, defalut или x-gzip. Но не выводит. Файервол отключён. HTTP 1.1 используется.
Только пожалуйста не отправляйте меня в поиск или в FAQ.Перед тем как задавать вопрос я ознакомился с этими разделами, но ответа на свой вопрос не нашёл.
 

kvf77

Red Devil
jenia

на хостинге может быть банятся Notice и Warnings потому ты их и не видишь, это не ответ

зайди в FAQ и сформулируй ответ точнее

или будем спорить?

браузер у тебя какой?
 

jenia

Новичок
Блин, ну я заходил в FAQ. Ну чесное слово был я там и не один раз. Браузеры IE 6.0 и Opera 8.0.
На счёт того, что код:
echo $_SERVER['HTTP_ACCEPT_ENCODING'];
неправильно работает - я не прав, всё работает у меня верно. Но ошибка всё равно та же.
А что мне сформулировать точнее? Я ведь исполняемый код показал и текст ошибки показал. Скажи, что ещё показать, я покажу.
 

jdoe

Новичок
копай лучше - auto_prepend_file и т.д.
где-то вызывается второй раз.
 

eddie

Новичок
кроме zlib.output_compression
проверь в php.ini еще
output_handler и zlib.output_handler
 

jenia

Новичок
Интересно, но код:
<?php
ob_start("ob_gzhandler");
?>
<html>
<body>
<p>This should be a compressed page.</p>
</body>
</html>
выполняется без ошибки.
А код:
<?php
ob_start("ob_gzhandler");
print "<html>
<body>
<p>This should be a compressed page.</p>
<body>
</html>";
?>
выдаёт ту же самую ошибку.

-~{}~ 13.09.05 16:30:

Я убрал весь текст и оставил только строчку:
ob_start("ob_gzhandler");
Может так нельзя делать, но ошибка всё та же:
Warning: (null)() [ref.outcontrol]: output handler 'ob_gzhandler' cannot be used twice in Unknown on line 0.
eddie
output_handler и zlib.output_handler отсутствуют (закоментированы) в php.ini. Изменить их? Если да, то на что?

-~{}~ 13.09.05 19:31:

Поискал в Гугле. Нашёл кучу подобных тем. Восновном у людей такая ошибка возникает при использовании форумов (phpBB например), чатов и т.д. Тоесть, как я понял, gzip сжатие включается в опциях форума, а админ прикручивает ещё и свой gzip. Также такое бывает на хостинге, когда хостер включает автоматической сжатие. Есть подозрения, что подобная опция етсь в Apache. У меня apache 1.3 в нём такой опции нет, насколько я знаю. Итак свою ошибку я так и не исправил. Но по моему, т.к. в тексте ошибки стоит: "...Unknown on line 0", это значит, что сжатие включено где-то ещё, а в моём коде повторяется, что и вызывает ошибку.

-~{}~ 13.09.05 22:02:

Подскажите пожалуйста, такой код должен выдавать ошибку?
PHP:
<?  ob_start("ob_gzhandler");  ?>
 

jdoe

Новичок
странная фигня. было бы интересно услышать в чем дело когда разберешься
 

jenia

Новичок
Люди! Пожалуйста проверьте кто-нибудь, такой код у вас выдаёт ошибку или нет и напишите:
PHP:
<?  ob_start("ob_gzhandler");  ?>
 

F0x

Новичок
Это граничит только с глобальными установками интерпретатора. Не все хостеры умеют правильно их настроить :D

Можешь попробовать, например, установить PHP_FLAG output_buffering On в конфиге
 

jenia

Новичок
Вообще-то output_buffering должно принимать числовое значение (как я понимаю). У меня output_buffering = 4096. Я конено попробовал изменить его на On, но это не помогло.

-~{}~ 14.09.05 03:16:

Стоял php 4.3.1. Поставил php 4.3.8. Ошибка пропала. Интересно почему?!
 

tristram

Guest
откуда числовое значение? там указание да/нет. если нет то данные сразу в броузер летят когда echo вызываешь а когда да они остаются в специальном буфере (читай переменной) и по окончанию сценария улетают броузеру. второй вариант кушает меньше ресурсов для этого его и придумали.
 

SiMM

Новичок
> откуда числовое значение?
[m]ref.outcontrol#ini.output-buffering[/m]
+ читать php.ini

> второй вариант кушает меньше ресурсов для этого его и придумали.
Откуда такие выводы?
 
Сверху