Andy: Cookie Dauer

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

  1. 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

  2. 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

  3. Hi,

    was haltet ihr von der Lösung, die Zeit an der das Cookie abläuft, in einem neuen Cookie zu speichern?

    Andy

    1. 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

  4. Hallo,

    evt. einen Timestamp in den Cookie setzen und diesen dann Ausgeben?

    MFG
    Andavos

    --
    http://www.rpgcommunity.de/clanwissen/index.php Webdesign, PHP, Clan-Aufbau und mehr