Sven Rautenberg: Nicht noch eine Benutzerverwaltungsfrage!

Beitrag lesen

Moin!

ich verstehe nicht, wie der Server bei PHP-Sessions Username und Password speichern kann. Der User muss sich doch fÃr jede "Sitzung" neu indentifizieren; erst dann gibt es doch eine Sitzungs-GUID, die, wenn ich nicht auf dem falschen Dampfer bin, hin- und hergesendet werden muss.

Eine ErklÃrung oder ein Link zum PHP-Sitzungskonzept wÃre nett.

Ist relativ einfach: Jede Seite, die eine erfolgte Anmeldung erfordert, prÃft, ob in den Session-Variablen schon Benutzername und Passwort hinterlegt sind, und prÃft diese Angaben in der Datenbank.

Vollkommen unabhÃngig davon kriegt ein Besucher beim ersten Seitenkontakt eine Session-ID verpaÃt. Solange er keine geschÃtzte Seite aufruft, ist das belanglos (er wird nur besser identifizier- und verfolgbar). Wenn er sich einloggen will, stellt das System fest, dass noch kein Benutzername und Passwort gespeichert wurden - also muà das System danach fragen -> Loginmaske kommt. Der Besucher gibt die Daten ein, das System speichert sie in der Session und kann mit diesen Angaben jetzt auf jeder Seite die Authentifizierung durchfÃhren. Die Session-ID, die bei jedem Seitenzugriff geliefert wird, ist praktisch zum Ersatzbegriff fÃr Username und Passwort geworden.

Immer wenn das System feststellt, dass Username und Passwort nicht zu einem registrierten User gehÃren, erscheint die Login-Maske zur Eingabe gÃltiger Authentifizierungsdaten. So erreicht man, dass sich dumme User auch mal vertippen dÃrfen. Mit geschickter Anwendung von URL-Mapping kann man die Sache sogar so aufpeppen und hinkriegen, dass angemeldete Besucher auf die jeweiligen gesicherten Seiten Bookmarks legen kÃnnen - im unangemeldeten Zustand kriegen sie dann eine Loginseite angeboten, auf der sie sich anmelden mÃssen, und gelangen dann automatisch zur jeweiligen gewÃnschten Seite - man muà die Leute nicht zwingend Ãber eine zentrale Anmeldeseite leiten.

- Sven Rautenberg