Sven Rautenberg: Zugriffskontrolle mittels SESSION

Beitrag lesen

Moin!

Nun habe ich aber gelesen, dass session_register und session_is_registered nicht mehr verwenden sollte und was wahrscheinlich noch schlimmer ist, dass ich auf die Daten mittels $_SESSION lese und schreibe.

Nun meine Frage, welche andere Möglichkeit gibt es die oben gezeigte Routine zu lösen?

Der Session-Mechanismus funktioniert in PHP so:

Ab dem Befehl session_start() steht dir das Array $_SESSION zur Verfügung und enthält den Zustand, den es beim letzten Speichern (also am Skriptende oder bei Aufruf von session_write_close()) eines Session-Skriptes hatte.

Startzustand beim erstmaligen Aufruf ist ein leeres Array.

Und dort hinein kannst du beliebige Werte speichern, die dir nicht verloren gehen. Beispielsweise: $_SESSION['benutzername'] = "John Doe" wäre die gültige Methode anstelle von session_register.

Oder komplexere Konstrukte mit mehreren Dimensionen: $_SESSION['rechte'] = array('lesen','schreiben','löschen');

Objekte sind grundsätzlich auch erlaubt, erfordern aber, dass du die Regeln zur Serialisierung und Deserialisierung von Objekten beachtest.

Und alle Aktionen, die prüfen sollen, ob irgendein Sessionwert existiert oder einen gewünschten Wert hat, greifen eben mit den ganz normalen Variablenfunktionen (z.B. isset(), empty(), array_key_exists() etc.) auf das Array $_SESSION zu, dessen einzige Sonderbedeutung eben ist, dass es am Skriptende gespeichert und durch den Befehl session_start() wiederhergestellt wird (im Gegensatz zu jeder anderen Variable, die nicht gespeichert wird und deshalb bei der Wiederverwendung leer bleibt).

- Sven Rautenberg

--
"Love your nation - respect the others."