Problem mit Cookies

Sphinx0592

Grünschnabel
Hallo, ich bin gerade dabei ein login System zu scripten und man soll die möglichkeit haben sich für immer einzuloggen.
Also: Der besucher macht ein Häkchen bei immer einloggen und loggt sich ein, ein Cookie mit einer Zeit wird gesetzt. Wenn er jetzt auf ausloggen geht wird das Cookie gelöscht, wenn man die Zeit ins Minus macht. Wenn das Häkchen nicht angeklickt, wird will ich ein normales Cookie setzen ohne Zeit so das es nach Schließen des Browser Fenster gelöscht wird.
Aber wenn er jetzt auf ausloggen drückt weiß ich nicht wie ich ein Cookie ohne zeit löschen kann.
Ist das überhaupt möglich?
Bitte um hilfe.
 
Hi,

dieser Artikel dürfte genau deine Thematik behandeln -> php-manual/setcookie


Ums direkt zu sagen.
Ein Cookie wird folgendermaßen gesetzt.

Code:
setcookie ( string $name [, string $value [, int $expire [, string $path [, string $domain [, bool $secure [, bool $httponly]]]]]] )


Beispiel:
Code:
setcookie('test_cookie', time(), time()+120, '/');
Dieses Cookie hat den Namen test_cookie und eine "Lebensdauer" von 2Minuten (Die Zeit wird in Sekunden angegeben) als Wert enthält das Cookie einen aktuellen timestamp (time())

Ein Cookie das du möchtest könnte so aussehen:
Code:
setcookie('test_cookie', time(), 0, '/');
Dieses Cookie verfällt am Ende der Session (beim schließen des Browserfensters)

expire

Der Zeitpunkt, an dem das Cookie ungültig wird. Dies ist ein Unix Timestamp, also die Anzahl Sekunden seit Beginn der Epoche. Mit anderen Worten, Sie werden diesen Wert wahrscheinlich mittels der Funktion time() plus der Anzahl Sekunden bis zum gewünschten Ablauf des Cookies setzen. Sie könnten aber auch mktime() verwenden. time()+60*60*24*30 wird das Cookie in 30 Tagen ablaufen lassen. Hat der Parameter den Wert 0 oder ist er nicht gesetzt, verfällt das Cookie am Ende der Session (wenn der Browser geschlossen wird).

Anmerkung: Beachten Sie, dass der expire-Parameter einen Unix-Timestamp enthält, im Gegensatz zum Datumsformat Wdy, DD-Mon-YYYY HH:MM:SS GMT. Die Konvertierung wird von PHP intern durchgeführt.
expire wird mit der lokalen Zeit des Clients verglichen, da diese von der Server-Zeit differieren kann.

Ich hoffe das hilft dir weiter
Gruß
 
Hi,

du willst einen Cookie löschen der ohne Zeitangabe gesetzt wurde wenn der Benutzer sich abmeldet.
Wieso willst du diesen extra nochmal löschen ?

Wenn du einen Cookie ohne Zeitangabe setzt, wird dieser gelöscht sobald der Benutzer sein Browserfenster schließt.

Per Google bin ich noch auf folgendes gestoßen.
Code:
setcookie("test_cookie", "");
Also dem Cookie einen lehren Wert zuweisen.


Gruß
 
Zurück