PHP $_SESSION für die Nutzerverwaltung

Weiterführende Informationen der Nutzer

Ein weiteres superglobales Array in PHP ist $_SESSION. Dabei werden Werte gespeichert, die seitenübergreifend benötigt werden. Ein praktisches Beispiel für eine Sessionverwaltung ist eine Webseite, bei der man sich als Mitglied anmelden kann. Dazu muss man normalerweise mit Benutzername und Passwort eingeloggt sein und nun kann es sein, dass man als eingeloggtes Mitglied Elemente der Webseite sehen kann, die normale Besucherinnen und Besucher nicht zu Gesicht bekommen.

Um das bewerkstelligen zu können, braucht es aber das Wissen des Skripts, ob man sich eingeloggt hat oder nicht. Da man sich nicht auf jeder Seite einloggen möchte - das wäre auch spezial-lästig - werden die Zugangsdaten in der Session gespeichert und man muss nur in den Variablen überprüfen, ob man bereits angemeldet ist oder nicht.

Nutzerverwaltung per $_SESSION und PHP

<?php
$_SESSION["user"] = "ichbins";
$_SESSION["pass"] = "keineahnung";
$pass = $_SESSION["pass"];
?>

Im Code sieht man beispielhaft, wie der User und sein Passwort gespeichert werden können. In der letzten Zeile geht man den umgekehrten Weg und holt sich aus der Session das gespeicherte Passwort. Natürlich würde man sich den User auch holen, es können noch ganz andere Daten aus der Session herausgelöst werden.

Der normale Vorgang lässt sich so skizzieren:

  1. ein Nutzer meldet sich per Formular an und gibt seine Daten ein
  2. das Skript speichert die Daten in $_POST aus dem Formular
  3. die nun vorliegenden Variablen werden per $_SESSION gespeichert
  4. auf der nächsten Seite ruft man die Daten ab und prüft, ob man eingeloggt ist

Wobei die Daten in der Session erhalten bleiben. Das heißt, wenn man nun die Unterseite wechselt oder auch wenn man auf die Startseite wechselt, bleibt der Wert der Session erhalten, bis man ihn überschreibt, diesen einen Wert aus der Session löst oder die Session insgesamt entsorgt.

Was kann man nun damit machen?

Bei datenbankunterstützten Webseiten wird normalerweise nachgeschaut, ob es die Zugangsdaten überhaupt gibt. Wenn ja, wird die Seite für das eingeloggte Mitglied angezeigt, wenn nein, wird der Besucher entweder auf eine Fehlerseite umgeleitet oder zum Login-Formular geschickt (meist mit Hinweis, dass die Daten nicht gestimmt haben) oder er kommt zurück zur Startseite.

Die Sessionverwaltung ist also für Webseiten mit geschütztem Bereich enorm wichtig und daher ist die Speicherung und der Umgang mit den Daten sensibel und muss gut geprüft werden, bevor man mit dem Projekt online geht, andernfalls kann es schnell zu einem Sicherheitsrisiko kommen.

Lesen Sie auch

Superglobale Array ist ein sperriger Begriff, mit dem man am Anfang seiner PHP-Karriere wenig anfangen kann. Aber schon bald wird man quasi täglich damit zu tun haben. Die wichtigsten Vertreter sind zweifelsohne $_GET und $_POST. Mit $_GET werden Werte durch die URL weitergegeben, bei $_POST werden die eingetragenen Formulardaten zur Verfügung gestellt, um sie auszuwerten - einen Kommentareintrag zum Beispiel.

Eine weitere wichtige Funktion ist mit $_SERVER gegeben, womit nicht nur Serverdaten abgefragt werden können, was man aufgrund des Namens hätte vermuten können. Es können auch Besucherdaten oder der verwendete Browser in Erfahrung gebracht werden.

Und dann gibt es noch die Sessionverwaltung mit $_SESSION, um zu überprüfen, ob das Mitglied sich eingeloggt hat. Weitere Lösungen sind mit $_FILES für hochgeladene Dateien und $_COOKIE für die Cookies in Anwendungen gegeben.

Diesen Artikel teilen

Kategorien

Grundlagen
HTML-Grundlagen
CSS-Grundlagen
Javascript-Grundlagen
PHP-Grundlagen
MySQL-Grundlagen
SEO-Grundlagen

Infos, Tipps, Vermarktung
Webdesign-Lexikon
Online-Werbung
PHP-Codeschnipsel