опять про flush

maxx

слип-стримом в поворот
опять про flush

доброе время суток!

исходные данные:
скрипт, в начале стоит
header("Pragma: no-cache");
header("Cache-Control: no-cache, no-store, private");

потом есть такой код

PHP:
 echo str_pad(" ", 256); 
 flush();
 
 if ($keywords) {
   $urls = GetURLs ($keywords, $pdepth * 10);
 }
 echo "<script>setprogress(0.30);</script>";
 flush();
	
 $step=0.70/count($urls);
 $proc=0.30;

 foreach ($urls as $key => $val) {
   $proc+=$step;
   echo "<script>setprogress(".round($proc, 2).");</script>";
   flush();
   ... подсчет значений - не важно ....
 }
поблема: в Експлорере 5 версии - все работает просто ИДЕАЛЬНО! но в шестом (версия 6.0.2800.1106.xpsp1...) - нифига, страница отображается только в самом конце :(

плиз хелп, оч нужно!

-~{}~ 20.04.04 23:04:

дальше интереснее...

я попробовал на своем сервере банальный
PHP:
echo str_pad(" ", 256); 
flush();
for ($i=0; $i<100; $i++)
{
  echo "+<br>";
  sleep(1);
  flush();
}
работает. залил скрипт на сервер клиента - не работает :(

начал беседовать с их админом... начали попробовать разные варианты...

пробовал .htaccess
PHP:
<IfModule mod_php4.c>
  php_flag output_buffering off
</IfModule>
флаг менялся на 0 (проверял phpinfo)

все равно не помогло....

понимаю что теперь проблема в настройке сервера... плиз подскажите, что и где еще может помочь?
 

korvin0

моська
Котеров советует
PHP:
function nocache() {
  Header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
  Header("Cache-Control: no-cache, must-revalidate");
  Header("Pragma: no-cache");
  Header("Last-Modified: ".gmdate("D, d M Y H:i:s")."GMT");
}
 

maxx

слип-стримом в поворот
PHP:
function nocache() {
  Header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
  Header("Cache-Control: no-cache, must-revalidate");
  Header("Pragma: no-cache");
  Header("Last-Modified: ".gmdate("D, d M Y H:i:s")."GMT");
}
два из них пробовал уже раньше... только что попробовал все четыре - все равное не работает
 

Lav

Guest
maxx
Что-то я не понимаю, какая связь между cache-control headers и [m]flush[/m]?
 

maxx

слип-стримом в поворот
Автор оригинала: Lav
maxx
Что-то я не понимаю, какая связь между cache-control headers и [m]flush[/m]?
связи может и нет никакой, только
1. данные заголовки предлагалось использовать в других темах по поводу flush
2. когда все варианты попробовал, то будешь и gd библиотеку подключать :(
 

SiMM

Новичок
maxx, посмотри, что к тебе реально приходит от сервера в заголовках. Смотреть либо самописным скриптом (CURL'ом или [m]fsockopen[/m]'ом), либо Proxomitronом, либо IEWatchем.
 

maxx

слип-стримом в поворот
Автор оригинала: SiMM
maxx, посмотри, что к тебе реально приходит от сервера в заголовках. Смотреть либо самописным скриптом (CURL'ом или [m]fsockopen[/m]'ом), либо Proxomitronом, либо IEWatchем.
Это возвращает клиента сервер:
PHP:
HTTP/1.1 200 OK
Date: Wed, 21 Apr 2004 12:22:07 GMT
Server: Apache
X-Powered-By: PHP/4.3.4
Connection: close
Transfer-Encoding: chunked
Content-Type: text/html
Это возвращает мой сервер:
PHP:
HTTP/1.1 200 OK
Date: Wed, 21 Apr 2004 12:22:05 GMT
Server: Apache/1.3.24 (Unix)
Connection: close
Transfer-Encoding: chunked
Content-Type: text/html
-~{}~ 23.04.04 21:18:

мысль у меня появилась (может я сформулирую её не правильно): может на сервере клиента стоит какой то еще модуль (компресси, или еще чего)... я не знаю, я себе такого никогда не ставил поэтому не могу сказать, может буфееризировать еще что-то мои страницы... если такое возможно. то как можно этот момент отследить?
 

SiMM

Новичок
Автор оригинала: maxx
может на сервере клиента стоит какой то еще модуль
Софт поди какой стоит, который нежелательные элементы хидера режет - а браузер работает через проксю.
если такое возможно. то как можно этот момент отследить?
Имхо, никак (хотя может и можно что-либо намудрить при помощи JS - который может быть и отключен).
PS: хотя, в принципе, в указанных тобой заголовках ничего про no-cache не видно - может в скриптах чего перемудрил.
 

voodoo

Новичок
мысль у меня появилась (может я сформулирую её не правильно): может на сервере клиента стоит какой то еще модуль (компресси, или еще чего)... я не знаю, я себе такого никогда не ставил поэтому не могу сказать, может буфееризировать еще что-то мои страницы...
может. mod_gzip, например.

если такое возможно. то как можно этот момент отследить?
посмотреть сниффером что шлет браузер и что шлет сервер.
можно еще попробовать Accept-Encoding: gzip в своем запросе.

а проще всего у хостера спросить :)
 

maxx

слип-стримом в поворот
может в скриптах чего перемудрил.
так как тут намудришь? :)

PHP:
echo str_pad(" ", 256); 
flush(); 
for ($i=0; $i<100; $i++) 
{ 
  echo "+<br>"; 
  sleep(1); 
  flush(); 
}
даже это не работает
 

SiMM

Новичок
Автор оригинала: maxx
так как тут намудришь? :)
Вот уж не знаю, но
PHP:
header("Pragma: no-cache");
header("Cache-Control: no-cache, no-store, private");
echo str_pad(" ", 256); 
flush(); 
for ($i=0; $i<100; $i++){ 
  echo "+<br>"; 
  flush(); 
}
у меня как минимум возвращает ожидаемые заголовки (Pragma и Cache-Control)
 

maxx

слип-стримом в поворот
Автор оригинала: SiMM
Вот уж не знаю, но
.....
у меня как минимум возвращает ожидаемые заголовки (Pragma и Cache-Control)
Симс, в самом начале топика я писал что пробовал данные заголовки... непомогло
 

SiMM

Новичок
Автор оригинала: maxx
Симс, в самом начале топика я писал что пробовал данные заголовки... непомогло
Ковыряй настройки апача либо разбирайся, кто у тебя хидеры режет, если они действительно передаются. Кстати, не лишним было бы указать версию апача и PHP.
 

maxx

слип-стримом в поворот
Автор оригинала: SiMM
Ковыряй настройки апача либо разбирайся, кто у тебя хидеры режет, если они действительно передаются. Кстати, не лишним было бы указать версию апача и PHP.
PHP Version 4.3.4
Apache Version Apache
Apache Release 10329100
Apache API Version 19990320

я сравнил мои данные из phpinfo и у клиента... флаги почти одинаковые... :(
а до апача еще не добрался. не все так быстро
 

AlexVN

Новичок
А если убрать заголовки - работает? Т.е. дейсвительно дело в них?
Кстати, у меня такая проблема возникала часто, пока не убрал "Использовать HTTP 1.1" в настройках IE. В Firefox такого замечено не было.
 

maxx

слип-стримом в поворот
Автор оригинала: AlexVN
А если убрать заголовки - работает? Т.е. дейсвительно дело в них?
Кстати, у меня такая проблема возникала часто, пока не убрал "Использовать HTTP 1.1" в настройках IE. В Firefox такого замечено не было.
нет. повторю:
PHP:
echo str_pad(" ", 256); 
flush(); 
for ($i=0; $i<100; $i++) 
{ 
  echo "+<br>"; 
  sleep(1); 
  flush(); 
}
работает на моём сервере железобетонно!!!

на сервере клиента этот код НЕ работает (т.е. все плюсы сразу. через 100 секунд) :(
 
Сверху