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

Reply via email to