ID: 17359 Updated by: [EMAIL PROTECTED] Reported By: [EMAIL PROTECTED] Status: Bogus Bug Type: Output Control Operating System: unix PHP Version: 4.1.2 New Comment:
ok, thank you (all). i'm forwarding this stuff to our developer, he said to me, that the headers are case sensitive, and coded the application in wrong way. thanks again. Previous Comments: ------------------------------------------------------------------------ [2002-05-23 09:24:25] [EMAIL PROTECTED] have a look at the sapi_apache_header_handler() function http://lxr.php.net/source/php4/sapi/apache/mod_php4.c#153 and especially line 170 http://lxr.php.net/source/php4/sapi/apache/mod_php4.c#170 thats how the content type is passed to apache: not as a complete header string but as the mime-type only in the content_type component of the requert_rec structure r so there is no way for apache to know if you wrote Content-Type, Content-type or even cOnTeNt-TYPE and as it doesn't matter there is no chance that they (the apache people) will change their APIs for you to get case sensitive behaviour in a place that is NOT to be meant case sensitive on the other hand they could even decide to convert *all* header field names to lowercase if they wanted so i *am* concentrating on the real problem, trying to convince you that relying on case sensitivity or case preservation here is just plain wrong in the first place. ------------------------------------------------------------------------ [2002-05-23 09:10:15] [EMAIL PROTECTED] oh, man, would you please concentrate to the problem?? i'm running a command which puts out a header. i'm giving this command a parameter, the text of the header. this text is: "Content-type: text/plain" this is case sensitive, because i want this header, this text. not anything else. and i get something completely different: Content-Type: text/plain THIS is the problem aside from the specifications. ok, the headers are case insensitive, but i want the header as i commanded the code to output it to me, not otherwise. ------------------------------------------------------------------------ [2002-05-23 08:39:35] [EMAIL PROTECTED] good luck ;) again: apache does nothing wrong here, as HTTP headers are defined as case insensitive whatever "causes chaos" for you is something that is *not* HTTP complient, so you should try to get that fixed instead of blaming software that is perfectly compliant, although maybe in a way you didn't expect ... please read the HTTP specs RRF2616, 4.2 Message Headers: "... Field names are case-insensitive. ..." (http://www.w3.org/Protocols/rfc2616/rfc2616-sec4.html#sec4.2) RFC2616, 14.17 Content-Type Content-Type = "Content-Type" ":" media-type ------------------------------------------------------------------------ [2002-05-23 06:24:15] [EMAIL PROTECTED] ok, sorry, forwarding this to the apache group. ------------------------------------------------------------------------ [2002-05-23 05:55:07] [EMAIL PROTECTED] #1 HTTP headers are defined as Case-Insensitive. period. #2 CGI does not specify headers at all #3 this is not a PHP issue, PHP passes the content-type to apache, it is the apache web server that treats the content-type header special and writes the Content-Type: part of the header line in this case this will happen to every Content-Type header set by an apache module, it will not happen for CGIs you can verify this by using the PHP command line interface (CLI): echo "<?php header('Content-type: text/plain'); ?>" | php result: X-Powered-By: PHP/4.2.0 Content-type: text/plain ------------------------------------------------------------------------ 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/17359 -- Edit this bug report at http://bugs.php.net/?id=17359&edit=1