2010-03-03 6 views
5

Angenommen, ich habe ein PHP-Skript, das ein Cookie erstellt, das in 10 Tagen abläuft. Gibt es eine Möglichkeit, PHP zu verwenden, um den Wert zu aktualisieren und das gleiche Ablaufdatum beizubehalten?Ist es möglich, den Wert eines Cookies zu ändern und das Ablaufdatum in PHP gleich zu lassen?

Sagen Sie zum Beispiel, dass mein Cookie heute mit dem Wert "foo" erstellt wurde und am 13.03.10 abläuft. In zwei Tagen möchte ich den Wert in "bar" ändern. Kann ich den Cookie am 13. noch ablaufen lassen oder bin ich gezwungen, den Cookie entweder sofort ablaufen zu lassen oder um weitere 10 Tage zu verlängern?

Antwort

2

Es ist nicht möglich.

Wenn Sie die HTTP-Spezifikation untersuchen (oder HTTP-Header mit ansehen), werden Sie feststellen, dass der Browser das Ablaufdatum nicht an den Server zurücksendet, sondern nur den Namen und den Wert.

Ein Weg, dies zu tun (ich bin sicher, es gibt bessere Möglichkeiten) ist ein weiteres Cookie, um das ursprüngliche Ablaufdatum zu speichern ...

1

Nun, es ist nicht wirklich möglich, unter Berücksichtigung das Ablaufdatum zu holen das Cookie selbst, ich sehe nicht, wie Sie herausfinden könnten, wann es abläuft, das Ablaufdatum erneut festzulegen. Ich nehme an, Sie könnten eine andere Cookie-Variable setzen, die das Ablaufdatum enthält, und dann, wenn Sie Cookies ändern, setzen Sie das Ablaufdatum wieder auf diesen Wert, aber ein Benutzer könnte es einfach so ändern, dass es in Jahren abläuft.

0

Nicht möglich.

Es ist auch eine sehr schlechte Praxis, sich auf das Cookie-Ablaufdatum zu verlassen. Wenn Sie bestimmte Verwendungsbeschränkungen haben, speichern Sie diese in der Datenbank und verwenden Sie nur einen Cookie, um einen bestimmten Benutzer zu identifizieren.

Verwandte Themen