Req #52555 [PATCH]: Headers_List not returning HTTP Status Code
Edit report at http://bugs.php.net/bug.php?id=52555&edit=1 ID: 52555 Patch added by: dragoo...@php.net Reported by:dragoo...@php.net Summary:Headers_List not returning HTTP Status Code Status: Assigned Type: Feature/Change Request Package:*Web Server problem PHP Version:5.3.3 Assigned To:dragoonis Block user comment: N New Comment: The following patch has been added/updated: Patch Name: http_response_code Revision: 1281307771 URL: http://bugs.php.net/patch-display.php?bug=52555&patch=http_response_code&revision=1281307771 Previous Comments: [2010-08-09 00:48:57] dragoo...@php.net The following patch has been added/updated: Patch Name: httpd_response_code Revision: 1281307736 URL: http://bugs.php.net/patch-display.php?bug=52555&patch=httpd_response_code&revision=1281307736 [2010-08-07 15:54:44] dragoo...@php.net After some discussions in IRC we have concluded that it's best to make a new function to give us the current response code rather than modifying existing functionality. I've added the patch below to be tested and committed into TRUNK or wherever. Cheers. Paul. [2010-08-07 15:53:20] dragoo...@php.net The following patch has been added/updated: Patch Name: http_response_code Revision: 1281189200 URL: http://bugs.php.net/patch-display.php?bug=52555&patch=http_response_code&revision=1281189200 [2010-08-06 14:15:06] dragoo...@php.net As per IRC conversations, the status_line or http_response_code are not headers therefore should not be returned from headers_list() so the conclusion is to make a new function to give you http_response_code. I will update this ticket with the patch. [2010-08-06 13:42:58] johan...@php.net RFC 2616 (Hypertext Transfer Protocol -- HTTP/1.1) makes a difference between the Status-Line (6.1) and the Headers (6.2) that we allow setting the Status-Line via header() is kind of a hack, headers_list() should only list headers so users can work with them easily (like splitting up at ": " etc.) The remainder of the comments for this report are too long. To view the rest of the comments, please view the bug report online at http://bugs.php.net/bug.php?id=52555 -- Edit this bug report at http://bugs.php.net/bug.php?id=52555&edit=1
Req #52555 [PATCH]: Headers_List not returning HTTP Status Code
Edit report at http://bugs.php.net/bug.php?id=52555&edit=1 ID: 52555 Patch added by: dragoo...@php.net Reported by:dragoo...@php.net Summary:Headers_List not returning HTTP Status Code Status: Assigned Type: Feature/Change Request Package:*Web Server problem PHP Version:5.3.3 Assigned To:dragoonis Block user comment: N New Comment: The following patch has been added/updated: Patch Name: httpd_response_code Revision: 1281307736 URL: http://bugs.php.net/patch-display.php?bug=52555&patch=httpd_response_code&revision=1281307736 Previous Comments: [2010-08-07 15:54:44] dragoo...@php.net After some discussions in IRC we have concluded that it's best to make a new function to give us the current response code rather than modifying existing functionality. I've added the patch below to be tested and committed into TRUNK or wherever. Cheers. Paul. [2010-08-07 15:53:20] dragoo...@php.net The following patch has been added/updated: Patch Name: http_response_code Revision: 1281189200 URL: http://bugs.php.net/patch-display.php?bug=52555&patch=http_response_code&revision=1281189200 [2010-08-06 14:15:06] dragoo...@php.net As per IRC conversations, the status_line or http_response_code are not headers therefore should not be returned from headers_list() so the conclusion is to make a new function to give you http_response_code. I will update this ticket with the patch. [2010-08-06 13:42:58] johan...@php.net RFC 2616 (Hypertext Transfer Protocol -- HTTP/1.1) makes a difference between the Status-Line (6.1) and the Headers (6.2) that we allow setting the Status-Line via header() is kind of a hack, headers_list() should only list headers so users can work with them easily (like splitting up at ": " etc.) [2010-08-06 12:50:43] dragoo...@php.net Description: Ok so i've found the reason why this doesn't work but i'd like feedback on the appropriate area to change as this looks like it was intentionally developed this way. headers_list() gets passed SG(sapi_headers).headers and prints them. This works however when you do header() -> sapi_header_op() and you set a response code such as 'HTTP/1.0 404 Not Found'. It does not put this header into SG(sapi_headers).headers but it puts it into SG(sapi_headers).http_response_code instead. This looks to be intentional as there are special functions for updating the response code such as sapi_update_response_code() So the end question is, should I modify sapi_header_op() to also include the response code in SG(sapi_headers).headers or should I modify headers_list() to receive SG(sapi_headers).headers and SG(sapi_headers).http_response_code. I could also make a new function which only returns SG(sapi_headers).http_response_code but i think that's a waste of time and could update headers_list() or whatnot. FYI: I tested apache_response_headers() and got no http response code in their either. Test script: --- string(34) "X-Powered-By: PHP/5.3.2-1ubuntu4.2" [1]=> string(30) "Content-type: text/plain" [2]=> string(22) "HTTP/1.0 404 Not Found" } Actual result: -- array(2) { [0]=> string(34) "X-Powered-By: PHP/5.3.2-1ubuntu4.2" [1]=> string(30) "Content-type: text/plain" } -- Edit this bug report at http://bugs.php.net/bug.php?id=52555&edit=1