dedlfix: Tutorial zu PHP Sessions

Beitrag lesen

Tach!

Danke erst mal, aus dem was Du und Hotti und das Tutorial mir sagen wollen, werde ich übers Wochenende einen Login bauen. Ich würde mich freuen, wenn ich das dann nochmal posten könnte in den wichtigsten Teilen, so dass ich Rückmeldung bekomme, ob das passt.

Es gibt verschiedene Varianten, wie man so ein Login realisieren kann.

Die einfachste ist, nach dem Übermitteln der Anmeldedaten durch den Client prüft man, ob diese zu einem Login passen und schreibt die Statusinformation, dass der Anwender eingeloggt ist nebst weiteren Daten, die zur Prüfung von Berechtigungen benötigt werden, in die Session. Bei weiteren Requests prüfst du nur die Session-Daten. Einfacher geht es (vermutlich) nicht, aber diese Art bringt natürlich auch ein paar Nachteile mit sich. Du kannst zwar im Bedarfsfall eine Anmeldesperre oder Berechtigungsänderungen im DBMS hinterlegen, aber sie wirken sich nicht auf die in der Session gespeicherten Daten aus. Wenn du jedoch eine sofortige Auswirkung benötigst, dann müsstest du alle Session-Dateien nach diesem User durchflöhen und die Änderungen einpflegen, die Session-Datei löschen und damit auch eine Zwangsabmeldung vornehmen oder irgendwas anderes geeignetes durchführen.

Eine weitere Variante ist, für jeden Request erneut die Anmeldedaten und auch die Berechtigungen gegen die Stammdaten zu prüfen, was immer mindestens einen Datenbankzugriff benötigt. Aber Änderungen wirken sich sofort aus. Diese Vorgehensweise braucht man auch bei HTTP-Authentication und Implementierungen ohne Session und damit ohne Cookies.

Zwischen diesen beiden Varianten gibt es noch Zwischenstufen, bei denen manche Daten in der Session vorgehalten werden und andere live abgefragt werden. Was konkret du nun einsetzen solltest hängt natürlich stark vom Anwendungsfall und den damit einhergehenden Bedingungen ab.

dedlfix.