ID: 26990
Updated by: [EMAIL PROTECTED]
Reported By: [EMAIL PROTECTED]
-Status: Open
+Status: Bogus
Bug Type: CGI related
Operating System: FreeBSD 5.2
PHP Version: 4.3.4
New Comment:
But this is PHP 4. (the note is for PHP3!)
Previous Comments:
------------------------------------------------------------------------
[2004-01-21 22:54:29] [EMAIL PROTECTED]
Yes, It works, but PHP manual also said:
Note: In PHP 3, this only works when PHP is compiled as an Apache
module. You can achieve the same effect using the Status header.
<?php
header("Status: 404 Not Found");
?>
It will be document problem? I don't know Apache's mod_cgi or other
servers work with double 'Status' header, but I'm using PHP by FastCGI
(mod_fcgi), It says:
FastCGI: comm with server "/path/to/php" aborted: error parsing
headers: duplicate header 'Status'
I think PHP should follow CGI Spec., at least CGI version, isn't it?
------------------------------------------------------------------------
[2004-01-21 19:24:50] [EMAIL PROTECTED]
This works:
<?php
header('Location: http://example.org', 0, 303);
?>
And next time, RTFM!
------------------------------------------------------------------------
[2004-01-21 16:13:38] [EMAIL PROTECTED]
I tried lastest, but not fixed. (php4-STABLE-200401212030)
Same result as 4.3.4.
I found on main/SAPI.c, sapi_headers_op() controls header but there is
no handles 'Status: xxx' header. Not fixed on CVS tree, also.
------------------------------------------------------------------------
[2004-01-21 14:36:21] [EMAIL PROTECTED]
Please try using this CVS snapshot:
http://snaps.php.net/php4-STABLE-latest.tar.gz
For Windows:
http://snaps.php.net/win32/php4-win32-STABLE-latest.zip
------------------------------------------------------------------------
[2004-01-21 06:58:33] [EMAIL PROTECTED]
Description:
------------
CGI version PHP does not handle 'Status: xxx' header.
By CGI 1.1 Spec, header('Status: xxx') can produce http response code.
(I can use 'HTTP/1.0 xxx', but I think CGI version should work with
'Status: xxx')
on http://hoohoo.ncsa.uiuc.edu/cgi/out.html ,
Status
This is used to give the server an HTTP/1.0 status line to send to the
client. The format is nnn xxxxx, where nnn is the 3-digit status code,
and xxxxx is the reason string, such as "Forbidden".
Reproduce code:
---------------
<?php
header('Status: 303 See Other');
header('Location: http://example.org');
?>
Expected result:
----------------
Status: 303
Content-type: text/html
Location: http://example.org
Actual result:
--------------
Status: 302
Content-type: text/html
Status: 303 See Other
Location: http://example.org
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=26990&edit=1