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:
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. Previous Comments: ------------------------------------------------------------------------ [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 ------------------------------------------------------------------------ [2002-05-23 04:29:23] [EMAIL PROTECTED] ok, start it again. source code at http://localhost/talalka.php : <?php header("Content-type: text/plain"); echo "LOFASZ\n"; ?> command running: /usr/bin/lynx -source -mime_header http://localhost/talalka.php result: HTTP/1.1 200 OK Date: Wed, 22 May 2002 13:24:29 GMT Server: Apache/1.3.22 (Unix) PHP/4.1.2 X-Powered-By: PHP/4.1.2 Connection: close Content-Type: text/plain LOFASZ As you can see, php sends wrong header. The "Content-type" header is not sent as i wrote it into the header function, and this causes chaos. Right?. ------------------------------------------------------------------------ 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