Thomas: Cookies - Teig ist ok, nur gebacken werden sie nicht...

Hallo alle - typische Newbie-Frage, und ich schäm' mich auch dafür. Ich hab SelfHTML tüchtig studiert und folgendes Script geschrieben:

Zahlen=new Array(12,31,57,76);

function load()
{
if(document.cookie)
{
Zahlen=new Array(document.cookie);
}
else
{
alert("Nichts gespeichert!");
}
}

function save()
{
document.cookie="12,14";
}

Erstens speichert mein Browser (MSIE 5.5) nichts unter \Windows\Cookies (trotz Sicherheitsstufe Mittel), zweitens klappt die Neuzusammenstellung des Arrays "Zahlen" nicht. Was ist da alles falsch?

  1. function load()
    {
    if(document.cookie)
    {
    Zahlen=new Array(document.cookie);
    }
    else
    {
    alert("Nichts gespeichert!");
    }
    }

    function save()
    {
    document.cookie="12,14";
    }

    Erstens speichert mein Browser (MSIE 5.5) nichts unter \Windows\Cookies (trotz Sicherheitsstufe Mittel), zweitens klappt die Neuzusammenstellung des Arrays "Zahlen" nicht. Was ist da alles falsch?

    Cookies mit Javascript zu fassen zu kriegen, erfordert etwas List. Zum Speichern mußt Du etwas in der Richtung

    document.cookie="mein_cookie="+String.escape("Tolle Cookie Daten");

    schreiben. Damit speicherst Du ein Cookie namens mein_cookie mit den angegebenen Daten. Du kannst hier also auch mehrere Cookies für Deine Seiten speichern.

    Raus kommen die Cookies in ähnlicher Form. Das bedeutet, daß Du den Text, der in document.cookie steht, in Einzelteile "name=daten" zerlegen und aus diesen Einzelteilen dann wiederum Cookiename und die Daten mußt.
    Wenn Du erfolgreich ein Cookie gesetzt hast, schau's Dir mit alert(document.cookie) einfach mal an.

    Es gibt für diese doch etwas umständliche Arbeit eine Reihe fertiger Hilfsfunktionen: http://kino-fahrplan.de/privat/st/cookies/cookie_box.js.

    Gruß,
      soenk.e

  2. Hallo.

    Erstens speichert mein Browser (MSIE 5.5) nichts unter \Windows\Cookies (trotz Sicherheitsstufe Mittel)

    Die werden nicht gespeichert, wenn die Seite über's file-Protokoll geladen wurde, muss schon http sein.

    zweitens klappt die Neuzusammenstellung des Arrays "Zahlen" nicht. Was ist da alles falsch?

    Zahlen=new Array(document.cookie);

    Zahlen = document.cookie.split(",");

    Gruß
    Norbert

  3. hi,

    Ich hab SelfHTML tüchtig studiert

    soso...

    Zahlen=new Array(document.cookie);

    damit wuerdest Du lediglich _einen_ (kommaseparierten) String in Deinem Array speichern, also Zahlen[0] ergaebe "12,14", Zahlen.length waere 1.

    function save()
    {
    document.cookie="12,14";
    }

    Du solltest wohl nochmal genauer nachlesen. Ein cookie besteht _zumindestens_ aus einem Namen-Wertpaar (als String), z. B. "blah=lala"

    setze also: document.cookie = "blah=lala";
    und pruefe mit: alert(document.cookie);

    wenn Du mehrere cookies setzt musst Du mit den Methoden der Stringbearbeitung den gewuenschten Wert herausfiltern, Trenner ist ein Semikolon.

    Erstens speichert mein Browser (MSIE 5.5) nichts unter \Windows\Cookies (trotz Sicherheitsstufe Mittel),

    Wenn Du mit cookies experimentierst rate ich Dir dringend, Mozilla zu benutzen. Er besitzt ein Cookie-Management, so dass Du eine sofortige Kontrolle hast.

    Gruesse  Joachim

  4. Hi Thomas,

    sorry, ich kann zu Deinem Problem leider nichts sagen, aber... das muß ich einfach loswerden : Ein _sehr_ geiles Topic hast Du da für Dein Posting genommen! :-)

    Gruß,
    _Dirk