ID: 36705 Updated by: [EMAIL PROTECTED] Reported By: alisencer at gmail dot com -Status: Feedback +Status: Open -Bug Type: CGI related +Bug Type: Documentation problem Operating System: FreeBSD PHP Version: 5.1.2 New Comment:
Recalssifying as a documentation problem. One should not use "Status: 123" but "HTTP/1.x 123". Previous Comments: ------------------------------------------------------------------------ [2006-03-12 15:39:18] [EMAIL PROTECTED] Please try using this CVS snapshot: http://snaps.php.net/php5.1-latest.tar.gz For Windows: http://snaps.php.net/win32/php5.1-win32-latest.zip ------------------------------------------------------------------------ [2006-03-12 14:14:36] alisencer at gmail dot com Description: ------------ In php-fastcgi, a header("Location: ..") call always results in an additional "Status:" header. This causes the web server to throw a 500 Internal server error. Identical code works perfectly in mod_php. The problem is specific to fastcgi. It doesn't matter what Status code the first header() call sends; the "Location:" call always adds a second "Status: 302" line. The effect is, that it becomes impossible to use header("Location;..."), if at any previous point in the script a Status header has been sent. It is also contrary to what the documentation says: http://de.php.net/manual/en/function.header.php "The second special case is the "Location:" header. Not only does it send this header back to the browser, but it also returns a REDIRECT (302) status code to the browser unless some 3xx status code has already been set." (Note the last part of that paragraph) Related: This seems to be what was happening in this bug report as well: http://bugs.php.net/bug.php?id=33225 which unfortunately was closed as bogus. Reproduce code: --------------- $ echo "<?php header( 'Status: 301' );header( 'Location: http://www.example.org' );?>" | php/php-fastcgi/php5-fcgi Expected result: ---------------- Content-type: text/html; charset=UTF-8 Status: 301 Location: http://www.example.com Actual result: -------------- Status: 302 Content-type: text/html; charset=UTF-8 Status: 301 Location: http://www.example.com ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=36705&edit=1
