:: Anbieterverzeichnis ::
Globale Branchen
Informieren Sie sich über ausgewählte
Unternehmen im
Anbieterverzeichnis von SELFPHP
:: SELFPHP Forum ::
Fragen rund um die Themen PHP? In über
120.000 Beiträgen finden Sie sicher die passende
Antwort!
:: Newsletter ::
Abonnieren Sie hier den kostenlosen
SELFPHP Newsletter!
:: Qozido ::
Die Bilderverwaltung mit Logbuch für
Taucher und Schnorchler.
|
|
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
- Unterschiedliche HTTP-Requests eines Clients können als Session behandelt werden.
- Für jeden Anwender wird eine verschlüsselte, zufallsgenerierte Session-ID erzeugt.
- Auf der Clientseite wird die Session-ID unter Verwendung von Cookies gespeichert.
- Sollte der Anwender die Verwendung von Cookies nicht gestatten, wird die Session-ID unter Verwendung von GET/POST-Variablen oder der URL von Skript zu Skript weitergeleitet.
- Sessiondaten werden auf dem Server entweder in Textdateien, in Datenbanken oder im Prozessspeicher des Webservers gespeichert.
- Sofern PHP mit der configure-Option – enable-trans-id kompiliert wurde, erfolgt die Weiterleitung der Session-ID für den Fall, dass Cookies nicht erlaubt sind, automatisch.
Konfiguration des Session-Moduls Session-Funktionen in PHP Weitergabe der Session-ID über Cookies Weitergabe der Session-ID über GET/POST Weitergabe der Session-ID über header()
|
|
|
|
|
|