Linuchs: Javascript: Ablaufdatum Cookie auslesen

Beitrag lesen

problematische Seite

Hallo Matthias,

hilft https://wiki.selfhtml.org/wiki/JavaScript/Tutorials/cookies?

Wenn ich etwas suche, ist selfhtml selten bei den Ergebnissen auf der ersten Seite. Und wenn, vermisse ich oft die Syntax, die bei Funden auf php.net (fast) immer ganz oben steht.

Aber mal reingelesen:

Mit der Abfrage if(document.cookie) ermittelt die Funktion, ob bereits ein Cookie vorhanden ist. Wenn ja, wird dessen Wert ermittelt.

Falsch, soweit ich das getestet habe. Es wird nicht ein, sondern alle Cookies abgefragt und der Wert eines einzelnen Cookies muss sehr umständlich herausgefiltert werden. Zum Beispiel so:

function bearbeiteCookie( coo_key ) {
  if ( document.cookie ) {
alert( document.cookie );
    // Alle Cookies in ein Array und sortieren
    var arr_cookies = document.cookie.split(";");
    arr_cookies.sort();

    // Cookie suchen
    for( var i=0; i < arr_cookies.length; i++ ) {

      // Cookie-Name von Werten trennen
      arr_cookie = arr_cookies[i].trim().split("=");

      // gesuchtes Cookie finden
      if ( arr_cookie[0].trim() == coo_key ) {
//alert( "[" + arr_cookie[0] + "] [" + arr_cookie[1].replace(/%40/g, "@") + "]" );
        var cookie_value = prompt( "neuer Wert für Cookie [" + arr_cookie[0].trim() + "]:", arr_cookie[1].replace(/%40/g, "@") );
        if ( cookie_value ) {

          // neuen Wert setzen fuer oberste Ebene /
          document.cookie = coo_key + "=" + cookie_value + ";path=/";
        }
      }
…

Die Indexierung document.cookie["p001"] funktioniert gar nicht.

Ich schlage mich seit Jahren mit dem unerklärten Phänomen herum, dass eine Domain mehrere Cookies mit demselben Namen haben kann. Erst jetzt bin ich dahinter gekommen, wieso. PHP setzt ein Cookie "p001", das sich aufs Hauptverzeichnis / bezieht. Und eine Webseite setzt ebenfalls ein Cookie "p001", das sich auf den Ordner "/_text" dieser Webseite bezieht.

Wenn ich mit der Webseite im Ordner "/_text" die Cookies aufrufe, sehe ich nur ein einziges "p001", während mir der Browser zwei anzeigt.

Gruß Linuchs