eingeloggt bleiben (Sessions+Cookie)
Tom
- programmiertechnik
Hallo!
Für ein Login, das mit Sessions arbeitet (PHP), möchte ich zusätzlich die Möglichkeit haben, dauerhaft eingeloggt zu bleiben (Sessions verfallen ja mit dem Schlißen des Browsers).
Dazu setzt man ja einfach ein Cookie, das dann eine Weile gültig ist. Meine Frage ist jetzt nur: was steht in diesem Cookie? Einfach die User-ID? Und wenn das Cookie da ist wird der User mit der entsprechenden User-ID eingeloggt? Das kommt mir irgendwie ein bißchen unsicher vor. Hat jeman einen Tipp?
Danke, Tom
Hallo Tom,
das Sessions mit dem Schließen des Browsewrs verfallen, sit nicht richtig. Die Session besteht solange fort, wie man wieder "reconnect" kann. Da HTTP ein verbindingsloses Protokoll ist, findet dieser reconnect mit der Session bei jedem Request statt.
Die "Session-Cookies" verfallen nur deshalb, weil sie mit dem "Haltbarkeitsdatum" 0 gesendet werden. PHP setzt diese Angabe dann in die passende Cache-Strategie-Vorgabe und eine unendliche Haltbarkeit um. Wenn Du nun zu Fuß den Cookie (typisch PHPSESSID) mit der Session-ID als dauercookie setzen würdest, ihn dann anschließend im Script in das Array unter $_COOKIE["PHPSESSID"] eintragen würdest und DANN erst session_start() aufrufen würdest, würde PHP diesen Dauercookie benutzen und du könntest solange reconnecten, bis der Cookie gelöscht wird oder die Sessiondatei gelöscht wurde (typisch nach 1440 Sec. ohne Touch).
Das Löschen der Sessiondatei kannst Du verhindern, indem Du dem Verzeichnis (*nicht* den Dateien) der Sessiondateien das r-Recht für das PHP-Runtime entziehst. Dann kann der GC nicht mehr "browsen".
Grüße
Tom (der andere)
Hallo anderer Tom!
Das hört sich interessant an. Ich suche allerdings nach einer "schlichten" lösung, die ohne spezielle PHP-Einstellung läuft. Manchmal gibt es doch so was bei Foren: Beim einloggen kann man über eine Checkbox angeben, dass man auf diesem Rechner eingelogget bleiben will. Wird da nicht ein weiteres Cookie gesetzt?
Tom
Hi Tom (der eine),
Manchmal gibt es doch so was bei Foren: Beim einloggen kann man über eine Checkbox angeben, dass man auf diesem Rechner eingelogget bleiben will. Wird da nicht ein weiteres Cookie gesetzt?
üblicherweise nein - nur eines mit einer Lebensdauer von mehreren Jahren (statt mit einer auf die Browser-Session begrenzten Lebensdauer).
Viele Grüße
Michael