Cookie: Warum Erweiterung statt Überschreiben?
Lukas Hänel
- javascript
0 Sönke Tesch0 Alexander
Hallo
Ich brauche Hilfe mit Cookies. Ich habe mich zwar ein bisschen umgeschaut, aber keine eindeutige Quelle zu dem Thema gefunden.
In Selfhtml steht, cookies setzen mit document.cookie = x;
lesen mit x = document.cookie;
das habe ich soweit auch verstanden.
Auf meiner Seite wird der Cookie am Anfang eingelesen und ein paar Einstellungen auf der Seite verändert. Wenn nun der Anwender wieder was umstellt, soll der Cookie verändert werden.
Um mehrere Angaben zu speichern habe ich den Cookie mit einem String der Form x0=1px,y0=1px,x1=20px,x2=1px,... belegt.
Nachdem ich den Cookie das erste mal gesetzt habe, und die Seite neu aufgerufen habe, wurde der Cookie auch richtig ausgegeben. Bei jedem weiterem Aufrufen wird der Cookie jedoch nicht überschrieben, sondern erweitert um ;meinAusdruck (ein Semikolon, und dann das was ich speichern wollte).
Ich benutze die Seite als Navigation für eigene Seiten auf meinem Computer mit IE 5.5 und Win98
Was mir noch einfällt, ich arbeite noch an der Seite, kann es sein, dass er wegen den ständigen Veränderungen an der Datei den Cookie nicht überschreibt?
Meine Fragen:
1. Wie kann ich den Cookie jedesmal überschreiben?
2. Wie kann ich den Cookie per Javascript löschen?
<<document.cookie="" hängt auch nur "; " an den Cookie ran.
3. Wie sieht ein Cookie aus, der von 'Arbeitsplatz' aus gesetzt wurde?
<<Lukas_Hänel@www.beispiel.de ist ja die Standard Form
4. Wo finde ich ihn?
5. Kann ich auf andere Weise mehrere Werte speichern?
Als Lösung sehe ich nur noch, mit der string Methode lastIndexof() nach dem letzten Semikolon zu suchen und den folgenden String mit subString() auszulesen.
Ich brauche Hilfe mit Cookies. Ich habe mich zwar ein bisschen umgeschaut, aber keine eindeutige Quelle zu dem Thema gefunden.
Benutzung von Cookies unter Javascript erfordert leider etwas Hinterlist. Benutze besser die Funktionen SetCookie, GetCookie und DeleteCookie aus dem Skript unter view-source:http://kino-fahrplan.de/cookie_box.js.
Das Original von Bill unter hidaho.com existiert leider nicht mehr, ich schau mal, ob ich nicht noch irgendwo hier eine kommentierte Version rumfliegen habe.
Gruß,
soenk.e
Vielen Dank
Ich habe aber mal selber nach einer Hilfe gesucht und dabei eine anderes Script gefunden, was aber dokumentiert ist.
Ich habe aber mal selber nach einer Hilfe gesucht und dabei eine anderes Script gefunden, was aber dokumentiert ist.
(http://www.iamexwi.unibe.ch/studenten/seeberge/repository/cookiemanagement.html)
Anderes Skript? Ich möchte mal behaupten, daß sich da jemand dreisterweise mit fremden Federn schmückt :( Das sieht nämlich dem Cookie-Skript von Bill Dortch verdammt ähnlich, sogar die Beschreibungen stimmen in weiten Teilen wortwörtlich überein.
Schau's Dir mal nochmal an: http://kino-fahrplan.de/privat/st/cookies/cookie_box.js.
Gruß,
soenk.e
Hi,
angesichts der super Quellen, die Du selbst gefunden hast, ist mein Posting ja eigentlich überflüssig, ich will es aber trotzdem posten, damit Dein Code "schlanker" wird und so ein paar Sekunden Übertragungszeit und Traffic eingespart werden:
Meine Fragen:
- Wie kann ich den Cookie jedesmal überschreiben?
Nun, ich kann diesen Fehler nicht ganz nachvollziehen:
Ich setzte so meinen Cookie (Ist eine Art Lesezeichnfunktion, das aber nur zur Info):
function CookieSetzen () {
var jetzt = new Date();
var EndZeit = new Date(jetzt.getTime() + (60 * 24 * 60 * 60 * 1000));
var Wert = document.title + "&" + location.href + "+" + escape(jetzt);
document.cookie = "Titel="+escape(Wert)+"; expires="+EndZeit.toGMTString()+";";
}
Auch bei mehrmaligen Setzen des selben Cookies auf einer Seite wird dieser komplett überschrieben und nicht erweitert.
- Wie kann ich den Cookie per Javascript löschen?
function CookieLoeschen () {
document.cookie= "Cookiename="+"; expires=Thu, 01-Jan-1970 00:00:01 GMT;";
}
- Kann ich auf andere Weise mehrere Werte speichern?
Nein, in einem Cookie kann immer nur einen Wert speichern. Du kannst aber natürlich, wie Du es auch machst, mehrere Varaiablen und deren Werte verketten und diese dann später wieder aussplitten.
Viele Grüße...
Alex :)