Dieter Raber: Cookies von PHP nach Javascript

Beitrag lesen

Hallo,

Ich habe fuer eine kleine Javascript-Bibliothek versucht, $_GET und $_COOKIE aus PHP in Javascript nachzubilden. Das funktioniert auch ganz gut, allerdings ist mir etwas Merkwuerdiges aufgefallen.
Erstmal die JavaScript-Funktion:

var _COOKIE = new Array()
function listenToCookie()
{
  if(document.cookie)
  {
    var cookieArr = document.cookie.indexOf(';') > -1
                  ? document.cookie.split(';')
                  : new Array(document.cookie,'');
    for(var i = 0; i < cookieArr.length; i++)
    {
      pairSplit = cookieArr[i].indexOf('=')
                ? cookieArr[i].split('=')
                : new Array(cookieArr[i],'');
      _COOKIE[pairSplit[0]] = pairSplit[1];
    }
  }
}
listenToCookie();

_COOKIE ist also aehnlich wie bei PHP global und immer vorhanden, zumindest im Lesezugriff.
Ich schreibe jetzt mit PHP ein Cookie, das Beispiel ist aus dem Manual, aber erweitert durch ein zweites Cookie namens 'foo':

setcookie ("foo", 'bar');
$value = 'something from somewhere';
setcookie ("TestCookie", $value);
setcookie ("TestCookie", $value,time()+3600);  /* expire in 1 hour */
setcookie ("TestCookie", $value,time()+3600, "/~rasmus/", ".example.com", 1);

_COOKIE enhaelt jetzt:
     [foo]        => bar
und  [TestCookie] => something+from+somewhere

Der Wert des Cookies 'TestCookie' enthaelt jetzt anstelle der Leerzeichen Pluszeichen, ganz so, als waere er mit einer Variante von urlencode() behandelt. Ich habe versucht, diese mit den verschiedenen JS-Funktionen zum Decoden loszuwerden, aber ohne Erfolg.

Hat jemand einen Vorschlag?

Gruß,

Dieter