ID: 21496 Comment by: [EMAIL PROTECTED] Reported By: [EMAIL PROTECTED] Status: Bogus Bug Type: Output Control Operating System: Linux PHP Version: 4.3.0 New Comment:
It is a bug if it was the recommended way of overwriting headers and you changed it and failed to tell anyone, so resulting in lots of things stopping to work. Either its a bug in your documentaiton or you changed a feature. Previous Comments: ------------------------------------------------------------------------ [2003-01-07 17:42:48] [EMAIL PROTECTED] php -q will stop output of all headers, not just default ones. So if header() works when -q is not specified, this is not a bug. ------------------------------------------------------------------------ [2003-01-07 13:24:09] [EMAIL PROTECTED] It seems this only occurs if you do -q to OVERRIDE the default headers, eg, print your own rather than say text/html.... it doesnt print any of them.... none at all! Even though you specifically asked for them. In 4.2 you did -q to suppress default headers but could print your own ------------------------------------------------------------------------ [2003-01-07 13:19:47] [EMAIL PROTECTED] Oh - I meant to say this is using PHP as CGI, and no this wasnt the CLI version this was deffinately the CGI one. I checked, a ton of times.. As I suddenly thought. ------------------------------------------------------------------------ [2003-01-07 12:55:03] [EMAIL PROTECTED] OK, I had the following code: <? $counterfile = '/path/afile; if (file_exists ($counterfile) == true ) { while (( $fp = fopen ($counterfile,"r+")) == false) { usleep(5);} while (!flock($fp,2)) { usleep(5); } $data = fread($fp,filesize($counterfile)); $content=explode(" ",$data); $content[1]=$content[1]+1; if (rewind($fp)!=0) { $data=implode(" ",$content); fwrite($fp,$data,strlen($data)); } flock($fp,3); fclose($fp); } //header ("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); // Date in the past //header ("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); // always modified //header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 //header ("Pragma: no-cache"); // HTTP/1.0 header('Content-disposition: filename=setup.exe'); header('Content-type: application/octetstream'); header('Content-length: '.filesize('/path/setup.exe')); readfile('/path/setup.exe'); ?> It worked before I upgraded to 4.3, so last version was 4.2 I used. Now, its not doing the headers, its just showing the results of the readfile.. (so my users reported major whine when they went to download my app as I stupidly didnt check that one link) v4.2 was compiled with Running PHP 4.2.2 Zend Engine v1.2.0, Copyright (c) 1998-2002 Zend Technologies [PHP Modules] xml standard sockets session posix pcre mysql imap ftp dbase ctype v4.3 with [PHP Modules] Zend Optimizer ctype dbase ftp imap mysql overload pcre posix session sockets standard tokenizer xml [Zend Modules] Zend Optimizer (Optimizer irrelevant the 4.2 works with or without optimizer, 4.3 produces the same) ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=21496&edit=1