Session automatisch löschen? |
BenBay
Pixelschubser Threadstarter
Beiträge: 5 |
Hallo,
also ich habe ein Login Script für mein CMS Programmiert, das auch super funktioniert leider habe ich da noch ein Problem. Es wird wenn sich der User einloggt eine Session gestartet und in der DB gespeichert das sieht dann ungefähr so aus:
Spalte: usersession Inhalt: 6e468a851ac881c06f6bfb5527f2fbd5
Anhand dieser Usersession wird der Benutzer erkannt ob er eingeloggt ist. Jetzt gibt es aber Websites wo der Login nach einiger Zeit verfällt so das man sich neu einloggen muss.
Wie könnte man das am besten lösen?
Jetzt zu meiner Idee wie man so was machen könnte:
Der User loggt sich ein, und die aktuelle Zeit wird in einem Cookie oder in der DB gespeichert. Dann setzte ich z.B. ein wert von 5 Minuten wo der Account gültig bleibt. Verlässt der User jetzt die Seite ohne sich auszuloggen bleibt ja die usersession erhalten. Also, der User kehrt nach einer Stunde wieder zurück auf die Site, es wird dann anhand eines Cookies oder der DB geprüft ob die Zeit abgelaufen ist oder nicht, ist Sie abgelaufen, wird die Session gelöscht und der User muss sich neu Einloggen.
Ist mein Ansatz richtig oder kann man das einfacher lösen?
---
Mfg
BenBay
|
 Profil
Editieren
Zitieren
|
FrediL
Fachidiot
Beiträge: 101 |
Wenn ich mich nicht irre, hat man es mir damals genau so beschrieben. Ich hatte nur noch keine Zeit es zu testen. Aber das müsste exakt der richtige Weg sein.
Tipp: Ich würde die Zeit auch in der DB speichern. Dann ist Sie bei dir und nicht beim User.
---
ergebniswelt.com -> Fußballergebnisse und mehr
|
 Profil
Website
Editieren
Zitieren
|
HG
Posting-Schinder
Beiträge: 520 |
So gehts auf jeden Fall. Du könntest aber auch die Gültigkeit des Cookies entsprechend setzen, so daß das Cookie sagen wir nur 10 Minuten gültig ist. Aber du musst trotzdem noch überprüfen, ob die Serverdaten gleiches ergeben, da Daten aus dem interNet bekanntlich wenig vertrauenserweckend sind...
---
www.kuminatano.de
|
 Profil
E-Mail
Website
Editieren
Zitieren
|
BenBay
Pixelschubser Threadstarter
Beiträge: 5 |
Ja, danke erstmal für Eure Antworten. Es ist aber auch ein Sicherheitsrisiko wenn in meinem Fall die usersession nicht gelöscht wird, oder irre ich mich da? Ich habe mir das mal beim phpBB2 angeschaut und die lassen die session auch weiter bestehen.
---
Mfg
BenBay
|
 Profil
Editieren
Zitieren
|
languitar
Foren-Team
Beiträge: 2795 |
Es gibt ja auch immer noch eine Verfallszeit für sessions, die global für den Server eingestellt ist. Danach sind normale Sessions eh weg
|
 Profil
Editieren
Zitieren
|
BenBay
Pixelschubser Threadstarter
Beiträge: 5 |
Hallo,
ja ich weiß, die Standardeinstellung sin 24 Minuten. Habe es aber selber ausprobiert. Ich habe mich eingeloggt und mal ne Stunde nichts getan. Nach einer Stunde konnte ich ohne Probleme meinen Account weiterbenutzten.
---
Mfg
BenBay
|
 Profil
Editieren
Zitieren
|
fred
Otto-Normal-Poster
Beiträge: 96 |
das ist von server zu server unterschiedlich.
am besten fragst du bei deinem hoster nach, wenn du einen eigenen server hast kannst du die zeit ja ändern.
sonst wie schon erwähnt mache das ganze peer cookies, oder eine andere möglichkeit, speicher wenn die session das erste mal erstellt wird (z.b. bei logins) ein datenbankeintrag beim jeweiligen user mit der aktuellen zeit ( now() oder time() [timestamp]). du überprüfst dann bei jedem aufruf der seite die aktuelle zeit minus der in der datenbank gespeicherten zeit. wenn es halt über 5 minuten ist destoryst du die session via session_destroy(). allerdings empfehle ich die methode nur bedienkt da es mehr datenbankabfragen sind, das geht dann auf den speed. bei skripts die viel genutzt werden sind cookies besser.
---
frederic
|
 Profil
E-Mail
Website
Editieren
Zitieren
|