Hans35: einzelne Variable aus Cookie lesen

Beitrag lesen

Hallo,

hab vor Jahren mal ein kleines Programm gemacht, das wohl genau das tut, was du suchst. Es erlaubt sogar "=" und ";" in den Strings:

// Cookie schreiben
// ----------------
function cookie_write (name, wert, verfall) {
                  var  name, wert, verfall;
 var n = name.replace(/=/g,"Ð");
     n =    n.replace(/;/g,"Ý");
 var w = wert.replace(/=/g,"Ð");
     w =    w.replace(/;/g,"Ý");
 var d = new Date();
 var t = new Date(d.getTime() + verfall*1000);
 document.cookie=n+"="+w+"Þ;expires="+t.toGMTString()+";" ;
}
//
// Cookie lesen
// ------------
function cookie_read (name) {
                 var  name;
 var n = name.replace(/=/g,"Ð");
     n =    n.replace(/;/g,"Ý")+"=";
 var wert="";
 var w=document.cookie;
 //  alert(w); // Test
 var u=w.indexOf(n,0);
 if (u > -1) {
    u=u + n.length;
    if (u>n.length) {
       u=w.indexOf("Þ; "+n,0);
       if (u>-1) {u=u+n.length+3} else {w=""};
    }
    w    = w.substring(u,w.indexOf("Þ",u));
    w    = w.replace(/Ý/g,";");
    wert = w.replace(/Ð/g,"=");
 }
 return wert;
}

Und hier ist ein kleines Test-Programm dazu:

...
<center>
<h2><br>Cookie-Schreib-Test<br> <br></h2>
<p>
Es wird ein Name (eine beliebige Zeichenfolge) eingegeben,<br>
ein zugehöriger Wert (auch eine beliebige Zeichenfolge)<br>
und ausserdem eine Verfallszeit in Sekunden, <br>
die angibt, wie lange die Zuordnung von Name und Wert gelten soll.<br>
Nach Anklicken von "Speichern" ist die Zuordnung als ein <i>Cookie </i>gespeichert.<br>
Durch Abfrage des richtigen Namens kann der Wert wiederbeschafft werden,<br>
solange die Verfallszeit nicht überschritten ist,<br>
auch wenn der Rechner zwischenzeitlich neu gestartet wurde.<br><br>

<form name="F1" onSubmit="cookie_write(
        document.F1.N.value,
        document.F1.W.value,
   eval(document.F1.V.value)
)">
Name:    <input type=text name="N" size=40 maxlength=256><br>
Wert:    <input type=text name="W" size=40 maxlength=256><br><br>
Verfall: <input type=text name="V" size=40 maxlength=256><br><br>
         <input type=submit value="Abspeichern"><br><br>
</form>

<form name="F2" onSubmit="alert(
   document.F2.N.value
   + ' = '
   + cookie_read( document.F2.N.value)
)">
 Name:   <input type=text name="N" size=40 maxlength=256><br>
         <input type=submit value="Lesen"><br><br>
</form>
<br><br>

</p>
</center>
...