ID: 33225 Updated by: [EMAIL PROTECTED] Reported By: phpbugs at thequod dot de Status: Open -Bug Type: CGI related +Bug Type: Documentation problem Operating System: * PHP Version: 5.0.4 New Comment:
Here's what I get with Apache2 and your script: HTTP/1.1 302 Found Date: Fri, 03 Jun 2005 21:15:54 GMT Server: Apache/2.0.52 (Fedora) X-Powered-By: PHP/5.1.0-dev Status: 301 Location: http://www.example.org Connection: close Content-Type: text/html; charset=ISO-8859-1 IMO, this is not a bug in either SAPI. Just documentation issue. Previous Comments: ------------------------------------------------------------------------ [2005-06-03 01:56:26] phpbugs at thequod dot de Description: ------------ Multiple "Status" lines get send when using "header('Location: url')", which produces an additional 302 (REDIRECT) status code. This causes FastCGI (at least) to produce a 500 Internal Server Error: FastCGI: comm with server "/path/to/fcgi-starter" aborted: error parsing headers: duplicate header 'status' Documentation (http://us2.php.net/manual/en/function.header.php) says: Note: The HTTP status header line will always be the first sent to the client [[NOT TRUE! - reproduce: echo "<?php header('Status: 304'); ?>" | php5/bin/php-fcgi]], regardless of the actual header() call being the first or not. The status may be overridden by calling header() with a new status line at any time unless the HTTP headers have already been sent [[NOT TRUE! - this bug]]. ----------------------------------- configure (both PHP5 and PHP4): ./configure --enable-memory-limit --enable-force-cgi-redirect \ --enable-track-vars --with-pcre-regex --with-mysql --without-sqlite \ --with-zlib --with-bz2 --enable-mbstring --with-openssl --enable-exif \ --with-dom=shared --with-ttf=shared --with-gd=shared --enable-calendar \ --with-iconv --enable-inline-optimization --enable-gd-native-ttf \ --with-ldap --with-ldap-sasl \ --with-gettext \ --without-mm --enable-fastcgi --prefix=/home/daniel/php5 Reproduce code: --------------- $ cat << "?>" | php5/bin/php-fcgi <?php header( 'Status: 404' ); header( 'Status: 301' ); header( 'Location: http://www.example.org' ); ?> Expected result: ---------------- Status: 301 Content-type: text/html X-Powered-By: PHP/5.0.4 Location: http://www.example.org Actual result: -------------- Status: 302 Content-type: text/html X-Powered-By: PHP/5.0.4 Status: 301 Location: http://www.example.org ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=33225&edit=1
