Cookie Dauer
Andy
- php
0 Philipp Hasenfratz0 JanW0 Andy0 Andavos
Hi,
ich setzte über setcookie() einen Cookie.
Nun möchte ich gerne, auf der Seite danach herausfinden, wie lange der Cookie noch existiert.
Gibt es eine Möglichkeit, das herauszufinden?
Andy
Halihallo Andy
Nun möchte ich gerne, auf der Seite danach herausfinden, wie lange der Cookie noch existiert.
Das hängt einzig und allein vom Client ab. Natürlich sollte jeder
Client die expires-Angabe interpretieren, jedoch wird diese beim
"Cookie: xxx" Request-Header *nicht* mitgesendet.
Die Folge ist dies: Falls du die noch ausstehende Lebensdauer des
Cookies wissen möchtest, *musst* du diese im Cookie-Wert
entsprechend codiert mitsenden.
Falls du deine Cookies stehts mit einer Lebensdauer von 1 Tag
ausstattest (86400 Sekunden), dann kannst du die Unix-Timestamp per
http://www.php.net/time im Cookie als kodierter Wert speichern
und auf
if (time() >= $cookie_unix_timestamp + 86400) {
// Cookie ist überfällig
} else {
// Cookie's lifetime ist noch innerhalb der Parameter
}
prüfen; wobei $cookie_unix_timestamp eben der gespeicherte time()
Wert zum Zeitpunkt des Sendens/Erstellens des Cookies ist.
Gibt es eine Möglichkeit, das herauszufinden?
Nicht ohne selbst zu programmieren.
Viele Grüsse
Philipp
Hallo Andy,
Du solltest die Dauer vorher im Cookie speichern. Auslesen kann man sie nicht. "Cookiedauer" schreibt man übrigens mit Bindestrich oder besser zusammen. Nomen wie im Englischen die aus zwei getrennten Teilwörtern bestehen gibt es im deutschen nicht.
Jan
Hi,
was haltet ihr von der Lösung, die Zeit an der das Cookie abläuft, in einem neuen Cookie zu speichern?
Andy
Halihallo Andy
was haltet ihr von der Lösung, die Zeit an der das Cookie abläuft, in einem neuen Cookie zu speichern?
Was soll passieren, wenn zwar der andere Cookie existiert, aber
dieser bereits vom Browser gelöscht wurde (z.B. weil die maximale
Grenze von 300 Cookies erreicht wurde, oder mehr als 20 Cookies von
deiner Domain stammen)?
Falls du diese Verfallszeit umbedingt benötigst, macht es Sinn, diese
gleich mit dem eigentlichen Wert zu speichern, denn wenn der Cookie
vom Browser noch gesendet wird, hast du 100%-ige Sicherheit, dass
du a) den eigentlichen Wert *und* b) die Verfallszeit hast. Ansonsten
hast du keine Sicherheit, dass du stehts beide Daten bekommst.
Nachteil des "verschmelzen" in einen Cookie ist, dass du beide
Werte "zusammencodieren" musst; dies braucht etwas Überlegung und
stets eine Kodierung, welche Zeit kostet und sich oftmals negativ
auf den Speicherverbrauch auswirkt (und davon hast du pro Cookie ca.
nur 4096 Bytes).
Vorteil wiederum: Du sendest nur einen Cookie und die Anzahl der
Cookies ist wertvoll, denn es sind nur 20 / Domain erlaubt...
Entscheide selbst... Es gibt Vor- und Nachteile... Ich persönlich
tendiere zur Lösung über einen Cookie.
Viele Grüsse
Philipp
Hallo,
evt. einen Timestamp in den Cookie setzen und diesen dann Ausgeben?
MFG
Andavos