JavaScript: Cookie-Probleme, die 2te
Christopher Schmidt
- javascript
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]
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
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
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
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