21.9 Mit Sessions arbeiten
Innerhalb dynamischer Websites ist es oft wichtig, für jeden zugreifenden User bestimmte Informationen über die Gesamtzeit des Site-Zugriffes aufrechtzuerhalten. Das können zum Beispiel ein Warenkorb, bestimmte Zugriffsrechte oder eine Auswertung des zurückgelegten Weges innerhalb der Website sein.
Mit den normalen technischen Möglichkeiten ist dies nur über Unmengen versteckter Felder in Formularen möglich. Das ist sehr unkomfortabel und fehleranfällig. Wenn Sie nicht wissen, wie viele Daten (Warenkorb) der User benötigt, ist es sogar unmöglich.
Variablen-Container | PHP und auch andere Skriptsprachen bieten daher die Möglichkeit, mit so genannten Sessions zu arbeiten. Diese ermöglichen es, Variablen wie in einem Container abzulegen und jederzeit auf den Inhalt dieses Containers zuzugreifen. Damit eine eindeutige Zuordnung der Daten zum User stattfindet, wird zu Beginn einer Session eine Session-ID wie die folgende vergeben:
PHPSESSID=ca99cb395982a54a14b20aa2e49bae93Session-ID übermitteln | Diese Session-ID wird automatisch generiert und identifiziert den User auch auf den nachfolgenden Seiten, die er anklickt, wenn dem Webserver die Session-ID bekannt ist. Damit das funktioniert, werden von PHP drei Verfahren angewandt, Sessiondaten zu übermitteln:
- als Cookie
- als Array ($_SESSION[]) (wird per URL-Parameter übergeben)
- als File auf dem Server
Je nach Voreinstellung wird eine dieser Methoden automatisch angewandt. Das Speichern einer Session auf dem Server ist allerdings von vielen Providern aus Sicherheitsgründen deaktiviert.
Session starten | Um mit Sessions zu arbeiten, müssen Sie die Session in jedem Dokument, das auf die gespeicherten Daten zugreifen soll, starten.
- session_start();: startet eine Session
- session_register(VARIABLE);: registriert eine Variable in einer Session
- session_unset(): hebt die Registrierung aller Variablen auf
- session_destroy(): löscht die komplette Session