ID:               34071
 Comment by:       dehstil at gmail dot com
 Reported By:      dennis at nocertainty dot com
 Status:           Feedback
 Bug Type:         Output Control
 Operating System: Windows XP SP2
 PHP Version:      5CVS-2005-08-10 (dev)
 New Comment:

I've reproduced the bug. I've been wondering why my script wouldn't run
until I saw this bug.  I'm using apache server on win xp with php 4 as a
module.

The above code produced the bug:
<?php
ob_start('ob_gzhandler');
echo 'Should NOT be shown';
ob_clean();
echo 'Should be shown';
?>

With further debuging this doesn't work either:
<?php
function handler($buffer,$mode){
$buffer=ob_gzhandler($buffer,$mode);
return $buffer;
}
ob_start('handler');

echo 'Should NOT be shown';
ob_clean();
echo 'Should be shown';
?>

I noticed that the content-length in my headers was non-zero so I tried
this and lo and behold:
<?php
function handler($buffer,$mode){
$buffer=ob_gzhandler($buffer,$mode);
header('Content-Encoding:');
header('Content-Type: text/plain');
header('Vary:');
return bin2hex($buffer);
}
ob_start('handler');
echo 'Should NOT be shown';
ob_clean();
echo 'Should be shown';
?>

I realized the bug is sending bad gz binary but for some reason the
following code did work...:
<?php
function handler($buffer,$mode){
$buffer=ob_gzhandler($buffer,$mode);
header('Content-Encoding:');
header('Content-Type: text/plain');
header('Vary:');
return gzuncompress($buffer);
}

ob_start('handler');
echo 'Should NOT be shown';
ob_clean();
echo 'Should be shown';
?>

To my surprise, this didn't, thus confusing me:
<?php
function handler($buffer,$mode){
$buffer=ob_gzhandler($buffer,$mode);
header('Content-Encoding:');
header('Content-Type: text/plain');
header('Vary:');
return 'test'.gzuncompress($buffer);
}

ob_start('handler');

echo 'Should NOT be shown';
ob_clean();
echo 'Should be shown';
?>

I'll be looking for the source on cvs and report back to ya!


Previous Comments:
------------------------------------------------------------------------

[2005-08-11 23:12:45] [EMAIL PROTECTED]

1) Check your php.ini settings (how they differ to whatever you used as
base for your php.ini, -dist or -recommended)
2) Set error_reporting to E_ALL and try again..


------------------------------------------------------------------------

[2005-08-11 20:54:56] dennis at nocertainty dot com

I found someone else who has the same problem as me:
http://www.sitepoint.com/forums/showpost.php?p=2093119&postcount=5

However, I can't find any specific information. I looked through my
Apache error log, and the only thing I found was:

[Wed Aug 10 18:59:56 2005] [error] [client 127.0.0.1] request failed:
erroneous characters after protocol string: \\xff\\xfb\\x1f\\xff\\xfb
\\xff\\xfb\\x18\\xff\\xfb'\\xff\\xfd\\x01\\xff\\xfb\\x03\\xff\\xfd\\x03GET
/gzip2.php HTTP/1.0
[Wed Aug 10 19:00:21 2005] [error] [client 127.0.0.1] request failed:
erroneous characters after protocol string: \\xff\\xfb\\x1f\\xff\\xfb
\\xff\\xfb\\x18\\xff\\xfb'\\xff\\xfd\\x01\\xff\\xfb\\x03\\xff\\xfd\\x03GET
/gzip2.php HTTP/1.0

But I'm not sure if that's entirely relevant. But there's nothing more
that's related to it.

------------------------------------------------------------------------

[2005-08-10 20:12:21] [EMAIL PROTECTED]

Then provide more info about it; look into the apache logs; try on
another server and with another PHP version etc etc.
As I've already said, it works perfectly here.

------------------------------------------------------------------------

[2005-08-10 19:47:05] dennis at nocertainty dot com

Also, I disabled PHP4 in my http.conf file, and it still doesn't work
properly in PHP5Dev. So I still believe there's a bug in PHP5.

------------------------------------------------------------------------

[2005-08-10 19:44:50] dennis at nocertainty dot com

Rasmus is right. The telnet thing works because ob_gzhandler doesn't do
anything. As soon as a specify a Content-Encoding: gzip header, nothing
gets displayed again. So it's not my browser that's causing the
problem.

------------------------------------------------------------------------

The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
    http://bugs.php.net/34071

-- 
Edit this bug report at http://bugs.php.net/?id=34071&edit=1

Reply via email to