Missing Array Key with apache_request_headers()
| From: | Philip Pawley | Date: | Wed, 14 Jan 2004 22:22:08 +0000 |
| Subject: | Missing Array Key with apache_request_headers() | ||
| Groups: | php.general | ||
| Request: | Send a blank email to php-general+get-174591@lists.php.net to get a copy of this message | ||
Hello,
I don't get this at all.
I'm trying to use php to manipulate my HTTP headers.
[ Background Info about HTTP headers.]
[ If an "ETag" header is sent by the server, then, next time a user-agent requests the
same page, it sends back that header's value - in an "If-None-Match" header. ]
The problem comes when I try to access the "If-None-Match" header using
"apache_request_headers()".
With Mozilla (I'm using 1.6b) the "If-Modified-Since" header is in the array.
With Internet Explorer 6, it isn't, even though the header is sent out. (I'm checking the
header output with the Proxomitron).
Why is this happening and what can I do about it?
Here are all the details:
-------------------------------------------
The page I'm testing this with:
<?php
header("ETag: asdfghjkl");
$headers = apache_request_headers();
print_r(array_keys($headers));
exit;
?>
-----------------------------------------
The Mozilla output on reload:
Array ( [0] => Accept [1] => Accept-Charset [2] => Accept-Encoding [3] =>
Accept-Language [4] => Cache-Control [5] => Connection [6] => Host [7] => If-None-Match
[8] => Keep-Alive [9] => User-Agent )
and from the Prox:
GET /test.php HTTP/1.1
Host: pc
User-Agent: Mozilla/5.0 (Windows; U; Win98; en-US; rv:1.6b) Gecko/20031208
Accept:
text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,image/jpeg,image/gif;q=0.2,*/*;q=0.1
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
If-None-Match: asdfghjkl
Cache-Control: max-age=0
Connection: keep-alive
-------------------------------------------
The IE6 output on reload is:
Array ( [0] => Accept [1] => Accept-Encoding [2] => Accept-Language [3] => Connection
[4] => Host [5] => Pragma [6] => User-Agent )
and from the Prox:
GET /test.php HTTP/1.1
Accept: */*
Accept-Language: en
Accept-Encoding: gzip, deflate
If-None-Match: asdfghjkl
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows 98)
Host: pc
Pragma: no-cache
Connection: keep-alive
--------------------------------------------
As you can see, in both cases, all the request headers shown by the Proxomitron are also in the
array - with the exception, for IE6, of the "If-None-Match" header.
Thanks in advance for your responses,
Philip Pawley