Code Comments

Programming Forum and web based access to our favorite programming groups.
For Programmers: Free Programming Magazines | New: Database administration forum
Registration is free! Edit your profileCalendarFind other membersFrequently Asked QuestionsSearch -> 
Post New Thread











Thread
Author

#33225 [Opn->Bgs]: PHP sends multiple Status headers
ID:               33225
Updated by:       vrana@php.net
Reported By:      phpbugs at thequod dot de
-Status:           Open
+Status:           Bogus
Bug Type:         Documentation problem
Operating System: *
PHP Version:      5.0.4
New Comment:

You can set HTTP response code by header("HTTP/ ") and that's what is
documented. "The HTTP status header line will always be the first sent
to the client" is pointing to this header("HTTP/ "), not
header("Status: ").


Previous Comments:
------------------------------------------------------------------------

[2005-06-06 00:02:21] sniper@php.net

If apache behaves like that (and CGI), it's not a bug.
Do NOT send multiple status headers if you wish it to work as you
expect.


------------------------------------------------------------------------

[2005-06-05 16:59:14] nlopess@php.net

Could you please check the last comment please?
And then return the bug to us if needed.

Thanks,
Nuno

------------------------------------------------------------------------

[2005-06-05 13:45:31] phpbugs at thequod dot de

Sniper, please use a FastCGI-compiled PHP-CGI binary and
don't inspect the apache output.

If you would have been running php-fastcgi on your Apache2
server you would've gotten a "Internal server error",
because fastcgi dies on multiple Status headers.

It's not only a documentation problem, but causes Internal
Server errors with apache and fastcgi, because fastcgi is
very strict about the "There has to be exact one status
code in the cgi response".

------------------------------------------------------------------------

[2005-06-03 23:18:04] sniper@php.net

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.


------------------------------------------------------------------------

[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

Report this thread to moderator Post Follow-up to this message
Old Post
vrana@php.net
06-06-05 08:56 PM


Sponsored Links




Last Thread Next Thread Next
Search this forum -> 
Post New Thread

PHP Documentation archive

Show a Printable Version Send to friend Email This Page to Someone! subscribe to this thread Receive updates to this thread
Computer Consultants
Programming Jobs
Visual Basic Controls
SQL Server Programming
Webservices
Java Security
Visual Studio
C# Programming
Visual J++
Software engineering
Open source Software
Perl Programming
PHP Programming
ASP Programming
ASP .NET Programming
Visual Basic Programming
Windows Scripting Host
Java Programming
Java Help
Java Beans
VBScript
Cobol
MAC Applications
Unix Programming
Forum Jump:
All times are GMT. The time now is 06:47 PM.

 
Free MCSE Braindumps | Real Estate Topics

Programming forum archive

Copyrights CodeComments.com 2004 - 2006

Powered by vBulletin Copyright 2000-2006 Jelsoft Enterprises Limited.