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