SELFPHP

SELFPHP-Druckversion
Original Adresse dieser Seite:
http://www.selfphp.de/praxisbuch/praxisbuch.php?group=35
© 2001-2017 E-Mail SELFPHP OHG, info@selfphp.de
© 2005-2017 E-Mail PHP5 Praxisbuch - Matthias Kannengiesser, m.kannengiesser@selfphp.de


Session-Management via PHP


Das Session-Management von PHP ist ein Mechanismus, welcher es ermöglicht, unterschiedliche Anfragen eines Clients über einen Zeitraum hinweg in Beziehung zu setzen. Da es sich bei HTTP um ein verbindungsloses Protokoll handelt, bedeutet dies, dass Client und Server nach jedem Kommando den Prozess beenden und im weiteren Verlauf des Kommunikationsprozesses für jedes weitere Kommando einen erneuten Prozess starten. Hierbei besteht zwischen verschiedenen Anfragen desselben Clients keine Beziehung. Für die Abwicklung von Geschäftsprozessen ist dieses Verhalten von HTTP zunächst sehr hinderlich, wie Sie am Beispiel eines Online-Shops leicht nachvollziehen können: Der Kunde ruft die Startseite eines Online-Shops auf und erhält dort in aller Regel eine Kennnummer, über die er im Verlauf des gesamten Prozesses der Onlinebestellung identifiziert werden soll.

Anschließend wechselt er in den Katalogbereich und füllt seinen Einkaufskorb. Möchte der Kunde die ausgewählten Artikel bestellen, wechselt er auf die entsprechende Seite und gibt dort Name, Anschrift und Bankverbindung an.

Im Verlauf dieses Prozesses hat der Kunde auf diese Weise in der Regel zwei bis drei verschiedene Seiten vom Server angefordert, der, wenn nicht entsprechende Maßnahmen getroffen werden, aufgrund des verbindungslosen HTTP-Protokolls die für den Bestellvorgang relevanten Informationen der jeweils zuvor besuchten Seite wieder vergessen hat.

Mit dem Session-Management sind die grundlegenden Funktionen, die für die Behandlung solcher über mehrere HTTP-Requests hinweg zusammenhängenden Transaktionen erforderlich sind, zum festen Bestandteil von PHP geworden.

Das Session-Management erstellt dabei automatisch die für die Behandlung von Sessions erforderlichen Session-IDs und kümmert sich um die Serialisierung und Speicherung der an die Session gebundenen Daten.

PHP nutzt zur Speicherung der Sessiondaten das Dateisystem des jeweiligen Webservers.

Bei der Speicherung werden die Session-Variablen von PHP automatisch serialisiert, d. h. in eine Zeichenkette umgewandelt.

Beim Start einer Session prüft PHP zunächst, ob eine gültige Session-ID existiert. Sollte das nicht der Fall sein, wird sie angelegt.

Wenn bereits eine gültige Session-ID vorhanden ist, werden die für diese Session vorgehaltenen Variablen im globalen Namensraum des Skripts verfügbar gemacht.

Durch Aufruf der Funktion session_register() können im weiteren Verlauf Session-Variablen erzeugt werden, um deren Speicherung sich PHP automatisch kümmert und die im Verlauf der gesamten Session referenziert werden können.

Mithilfe der Funktion session_unregister() können Session-Variablen wieder entfernt werden, was bei einer Online-Shop-Lösung erforderlich werden kann, wenn ein Kunde schon ausgewählte Artikel wieder aus seinem Warenkorb entfernt.

Zusammenfassung