Christopher Schmidt: JavaScript: Cookie-Probleme, die 2te

Hallo,

ich habe Gestern einen Thread eröffnet, in dem ich fragte, wie ich einen Cookie löschen kann. Daraus ist vollgendes geworden:

<html>
<head>
<script type="text/javascript">
function deltecookie() {
document.cookie = "name=contextmenu; expires=Thu, 01-Jan-70 00:00:01 GMT;";window.parent.location.href=window.parent.location.href;
}

var ablauf = new Date();
var indreistunden = ablauf.getTime() + (3 * 60 * 60 * 1000);
ablauf.setTime(indreistunden);

if(navigator.cookieEnabled == false){alter("Für Diese Funtkion müssen Cookies aktiviert sein!"); }
else {
if(document.cookie)
{
document.write(document.cookie);
document.write("<br><br><a href="#" onclick="deltecookie();">Cookie löschen?</a>");

}
else {
document.write("Cookie setzen?");
document.cookie = "name=contextmenu; expires=" + ablauf.toGMTString();
}
}
</script>
</head>
<body>

</body>
</html>

der Cookie wird auch schön geändert, (meine ich), aber der Browser (IE6) erkennt irgendwie nicht mehr das Verfallsdatum.

Ich hoffe auf eine schnelle Antwort,

Chrissi

________________
AktuellesProjekt: [URL]http://www.chrissi-in-the-web.de[/URL]

  1. Hallo,

    ich habe Gestern einen Thread eröffnet,

    dann schreib doch bitte da weiter, denn die "Christopher-hat-ein-Cookie-Problem"-Interesierten schauen da auch nach, alle anderen fühlen sich eher genervt und blenden dann auch in Zukunft schneller aus..... (Es handelt sich ja um ein Folgeproblem und nicht um ein komplett neues Gebiet....)

    Chräcker

    1. Hallo,

      ich habe Gestern einen Thread eröffnet,

      dann schreib doch bitte da weiter, denn die "Christopher-hat-ein-Cookie-Problem"-Interesierten schauen da auch nach, alle anderen fühlen sich eher genervt und blenden dann auch in Zukunft schneller aus..... (Es handelt sich ja um ein Folgeproblem und nicht um ein komplett neues Gebiet....)

      So richtig habt Ihr da aber auch nicht gelegen. Von wegen: "name=xyz" legt den Cookienamen mit xyz fest." Das mit den Cookies verhält sich so:

      <body>
      <script type="text/javascript">
      <!--
      //diese Cookies existieren beim Aufruf der URL.
      document.writeln("<p>" + document.cookie + "</p>");

      var ablauf = new Date();
      var indreistunden = ablauf.getTime() + (3 * 60 * 60 * 1000);
      ablauf.setTime(indreistunden);
      document.cookie="name=contextmenu; expires=" + ablauf.toGMTString();
      //nun existiert _ein_ Cookie mit dem Namen "name" und dem Inhalt "contextmenu"
      document.writeln("<p>" + document.cookie + "</p>");

      document.cookie="name2=was anderes; expires=" + ablauf.toGMTString();
      //nun existieren _zwei_ Cookies "name" Inhalt "contextmenu" und "name2" Inhalt "was anderes"
      document.writeln("<p>" + document.cookie + "</p>");

      document.cookie="name=geändert; expires=" + ablauf.toGMTString();
      //nun existieren _zwei_ Cookies "name" Inhalt "geändert" und "name2" Inhalt "was anderes"
      document.writeln("<p>" + document.cookie + "</p>");

      var ablauf = new Date();
      var vorhin = ablauf.getTime() - 1000;
      ablauf.setTime(vorhin);
      document.writeln("<p>" + ablauf.toGMTString() + "</p>");
      document.cookie="name=egal; expires=" + ablauf.toGMTString();
      //Der Cookie "name ist nun verfallen."
      document.writeln("<p>" + document.cookie + "</p>");

      //-->
      </script>
      </body>

      viele Grüße

      Axel

      1. Hallo,

        na dann kopiere ich mir Deine ausführliche Erklärung gleich auf die Platte, auf das ich es endlich mal richtig verstehe und selbst immer parat habe ;-) Danke für dieses Beispiel!

        Chräcker

  2. Hi,

    ich habe Gestern einen Thread eröffnet, in dem ich fragte, wie ich einen Cookie löschen kann.

    ...dessen Beitraege nicht wirklich hilfreich waren, daher erlaube ich mir, hier weiterzuschreiben.

    // hier wird eine Auslaufzeit erzeugt: 100000 Millisekunden
    // diese Auslaufzeit ist zunaechst irrelevant, brauchen wir spaeter
    var date =  new Date();
        date =  new Date(date.getTime() +100000);

    // hier erzeugst Du das cookie lala
    // Beachte "name" ist als reserviertes Wort ein schlechter Name
    document.cookie =  'lala=foo; expires=' + date.toGMTString();
    alert(document.cookie);

    // Hier aenderst Du den _Wert_ des Cookies
    document.cookie =  'lala=boo; expires=' + date.toGMTString();
    alert(document.cookie);

    // Wenn Du den Cookie löschen willst, musst Du eine negative
    // Auslaufzeit setzen, dann verfaellt der Cookie sofort:
    var date =  new Date();
        date =  new Date(date.getTime() -1000);

    document.cookie =  'lala=boo; expires=' + date.toGMTString();
    alert(document.cookie);

    hth + Gruesse  Joachim