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

Reply via email to