PHP Weird Undefined index error
arrays, http-headers, php
Solution
I got it after much help from you guys. I had a feeling that because it worked after the deserializing that maybe the encoding was different and thats why we could see it, but not touch it?
My code below gets all the headers and converts the encoding and puts it in a new array :)
Here is my 'Translation' code.
$headersRaw = getallheaders();
$headers = array();
foreach($headersRaw as $key => $value)
{
$headers[mb_convert_encoding($key, "UTF-8")] = $value;
}
Problem
I have a really frustrating issue where I cannot retrieve any of the headers. Here is my code: ``` $headers = getallheaders(); echo($headers["SystemTime"]); //Doesnt work $keys = array_keys($headers); echo($headers[$keys[4]]); //Doesnt work ``` Both lines produce the error 'Undefined index: SystemTime'. I cannot for the life of me figure out why I cant get the value. If I go `print_r($headers);` I get this ``` Array ( [Content-Type] => application/x-www-form-urlencoded [Content-Length] => 0 [Host] => localhost [Referer] => [SystemTime] => 2012-06-26+09%3a20%3a27 ) ``` var_dump of $headers ``` array(5) { ["Content-Type"]=> string(33) "application/x-www-form-urlencoded" ["Content-Length"]=> string(1) "0" ["Host"]=> string(9) "localhost" ["Referer"]=> string(0) "" ["SystemTime"]=> string(23) "2012-06-26+10%3a10%3a08" } ``` var_dump of $keys ``` array(5) { [0]=> string(12) "Content-Type" [1]=> string(14) "Content-Length" [2]=> string(4) "Host" [3]=> string(7) "Referer" [4]=> string(10) "SystemTime" } foreach ($headers as $name => $value) { echo "$name: $value. From Array: {$headers[$name]}\n"; } ``` returned: ``` Connection: Keep-Alive. From Array: Keep-Alive Content-Type: application/x-www-form-urlencoded. From Array: application/x-www-form-urlencoded Content-Length: 0. From Array: 0 Host: localhost. From Array: localhost Referer: . From Array: Notice: Undefined index: SystemTime in /clientdata/apache-www/a/d/[XXXXXX].com/www/admin/request/GetPCLicence.php on line 22 SystemTime: 2012-06-26+10%3a10%3a08. From Array: ``` Im stuck and I seriously cannot figure out what is going wrong. It should work. PS. I know that the SystemTime header is non-standard. I provide that from my http_request.