timestamp und set_cookie()
Katja
- php
Hallo,
wir rufen set_cookie() auf mit time()+120 und erwarten dass PHP uns einen COOKIE mit 2 Minuten Lebensdauer produziert.
Denkste !
Wo liegt der Fehler?
Das es hier um eine Zeitdifferenz von 3600 Sekunden handelt ist bekannt. Ist es vielleicht eine falsche Servereinstellung ?
Berücksichtigt set_cookie() zur Berechnung der Zeitdifferenz, die HTTP dann tatsächlich übernimmt, irgendwelche Settings?
Wir wollen nicht an der verkehrten Stelle schrauben !
Gruß Katja
Hallo Katja,
geht die Uhr des Client-Rechners denn richtig. Geht sie vielleicht mehr als zwei Minuten vor? Das Cookie wird dann vom Browser gar nicht angenommen.
Gruß
Eidgenosse
Hallo zusammen,
geht die Uhr des Client-Rechners denn richtig. Geht sie vielleicht mehr als zwei Minuten vor? Das Cookie wird dann vom Browser gar nicht angenommen.
Genau das ist das Problem. Obwohl HTTP lt. RFC-2109 nur die "delta-seconds" überträgt, scheint der Client trotzdem die Zeit des Servers zu kennen und errechnet aus den beiden Werten wieder eine absolute Zeitgröße.
Fragt sich jetzt nur, woher der Client beim set_cookie() die Serverzeit nimmt...
Liebe Grüße aus http://www.braunschweig.de
Tom
Hi
geht die Uhr des Client-Rechners denn richtig. Geht sie vielleicht mehr als zwei Minuten vor? Das Cookie wird dann vom Browser gar nicht angenommen.
Genau das ist das Problem. Obwohl HTTP lt. RFC-2109 nur die "delta-seconds" überträgt, scheint der Client trotzdem die Zeit des Servers zu kennen und errechnet aus den beiden Werten wieder eine absolute Zeitgröße.
Fragt sich jetzt nur, woher der Client beim set_cookie() die Serverzeit nimmt...
aus dem HHTP-Request bzw. der Antwort des Servers darauf, kurz: aus dem Header. Dass das nicht gehen sollte, weiß ich, aber es ist offensichtlich so, Versuche mit dem Verstellen meiner BIOS-Uhr auf 1.1.1980 bestätigten das, denn ein Cookie hatte überhaupt keine Wirkung mehr.
Vielmehr muss man sich also fragen, wie man die Server-Uhr synchron hält und vielleicht eher 300 sek nehmen.
Fabian