#36705 [Opn->Fbk]: Location header results in duplicate Status header ([f]cgi only)

From: Date: Sun, 12 Mar 2006 14:39:19 +0000
Subject: #36705 [Opn->Fbk]: Location header results in duplicate Status header ([f]cgi only)
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-94222@lists.php.net to get a copy of this message
ID: 36705 Updated by: mike@php.net Reported By: alisencer at gmail dot com -Status: Open +Status: Feedback Bug Type: CGI related Operating System: FreeBSD PHP Version: 5.1.2 New Comment: 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 Previous Comments: ------------------------------------------------------------------------ [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

« previous php.bugs (#94222) next »