Chriss3000
Grünschnabel
Hallo.
Derzeit versuche ich mich etwas in Html und PHP um meine Kentnisse dahin gehend etwas zu erweitern.
Ich bin im Moment mit dem Erstellen eines Logginscriptes beschäfftigt und würde dabei gerne die PHP eigenen Session Funktionen nutzen.
Mein Problem liegt derzeit darin, das ich einen Weg erarbeiten will, wie ich verhindern kann das der gleiche Nutzer durch einloggen in zwei Verschiedenen Browserfenstern auch gleichzeitig zwei verschiedene sessions startet.
Zum einen ist das sicher dadurch zu verhindern, dass man die SessionID ausschließlich in Cookies speichert. Dann jedoch werden ja alle User die Cookies deaktiviert haben von der Nutzung ausgeschlossen.
Zweiter Weg den ich mir überlegt habe, ist die SesssionID zusätzlich in die Userdaten DB zu speichern und beim erneuten Loggin des Users dann die in der DB eingetragene SSID zu übergeben. Problem dabei wäre der Fall, dass ein User sich nicht regulär ausloggt sondern einfach den Browser schließt. PHP würde dann (wenns richtig gemacht ist) die Session nach einer bestimmten Zeit ja einfach löschen. Die DB wäre aber noch nicht aktualisiert. Und wenn die dann für PHP wieder freie SessionID an einen anderen User vergeben wurde und der erste User loggt sich wieder ein......-> ungünstig.
Daher müsste ich in die Sessions auch immer noch ein zweites Identifikationsmerkmal wie z.B. den Usernamen speichern und beim Loggin vom ersten User dann erst prüfen, ob die in der DB stehende SSID mittlerweile zu einem anderen User gehört. Bzw. ich würde prüfen, ob noch eine Session des erten Users läuft.
Meine Frage ist nun wie man dies am elegantesten erledigen kann.?
Hatte mir das Laienhaft mal so vorgestellt:
Halltet ihr das für eine elegante Lösung? Weiß grad garnicht, ob das überhaupt funktionieren würde, oder ob mit dem Befehl "Session_ID" dann die alte Session mit der SSID überschrieben wird!?
Danke schonmal für eure Hilfe.
Gruß
Chris
Derzeit versuche ich mich etwas in Html und PHP um meine Kentnisse dahin gehend etwas zu erweitern.
Ich bin im Moment mit dem Erstellen eines Logginscriptes beschäfftigt und würde dabei gerne die PHP eigenen Session Funktionen nutzen.
Mein Problem liegt derzeit darin, das ich einen Weg erarbeiten will, wie ich verhindern kann das der gleiche Nutzer durch einloggen in zwei Verschiedenen Browserfenstern auch gleichzeitig zwei verschiedene sessions startet.
Zum einen ist das sicher dadurch zu verhindern, dass man die SessionID ausschließlich in Cookies speichert. Dann jedoch werden ja alle User die Cookies deaktiviert haben von der Nutzung ausgeschlossen.
Zweiter Weg den ich mir überlegt habe, ist die SesssionID zusätzlich in die Userdaten DB zu speichern und beim erneuten Loggin des Users dann die in der DB eingetragene SSID zu übergeben. Problem dabei wäre der Fall, dass ein User sich nicht regulär ausloggt sondern einfach den Browser schließt. PHP würde dann (wenns richtig gemacht ist) die Session nach einer bestimmten Zeit ja einfach löschen. Die DB wäre aber noch nicht aktualisiert. Und wenn die dann für PHP wieder freie SessionID an einen anderen User vergeben wurde und der erste User loggt sich wieder ein......-> ungünstig.
Daher müsste ich in die Sessions auch immer noch ein zweites Identifikationsmerkmal wie z.B. den Usernamen speichern und beim Loggin vom ersten User dann erst prüfen, ob die in der DB stehende SSID mittlerweile zu einem anderen User gehört. Bzw. ich würde prüfen, ob noch eine Session des erten Users läuft.
Meine Frage ist nun wie man dies am elegantesten erledigen kann.?
Hatte mir das Laienhaft mal so vorgestellt:
Code:
1) Session_start()
2) Session_ID("SSID aus DB")
3) Session_start() // um neue SSID wirksam werden zu lassen
4) If ($_SESSION['Nick'] == $Nick_Login) -> Dann wird diese SessionID weiter verwendet.
5) else -> Session_destroy() ->Session_start() // Neue Session wird gestartet
Halltet ihr das für eine elegante Lösung? Weiß grad garnicht, ob das überhaupt funktionieren würde, oder ob mit dem Befehl "Session_ID" dann die alte Session mit der SSID überschrieben wird!?
Danke schonmal für eure Hilfe.
Gruß
Chris
Zuletzt bearbeitet: