Sessions Teil 2 - Einsatz

  • Die Theorie zu Sitzungen unter PHP haben wir im letzten Teil erledigt. Nun kommen wir zu einem praktischen Beispiel, das in erster Linie nicht gerade sinnvoll ist, aber die Materie für den Einstieg gut nahe bringen soll. Sessions, wie im letzten Teil schon erwähnt, spielen ihre Vorteile im Bezug auf Variablen aus. Wir werden jetzt zwei einfache Skripte schreiben: Das erste Skript startet eine Sitzung, übergibt dieser Variablen und gibt einen Link zum zweiten Skript aus. Das gibt uns dann die vorher registrierten Variablen aus und beendet die Session. (start.php) <?php session_name('id');session_start();<#$>link_name = 'PC-Special';<#$>link_url = 'http://www.pc-special.net/';session_register('link_name');session_register('link_url'); echo('<a href="ende.php?id=' . session_id() . '">weiter...</a>');?> Das erste Skript heißt also start.php und startet die Session mit session_start(). Danach belegt es zwei Variablen mit Werten und registriert diese Variablen bei der aktuellen Sitzung mit der Funktion session_register(). Von da an können die Variablen über diese Session immer abgerufen werden. Schließlich wird lediglich noch ein Link zum zweiten Skript ausgegeben. Die Identifizierung einer Sitzung läuft, wie wir schon wissen, über eine Kennnummer: Die Session-ID. Damit diese sicher auch beim zweiten Skript ankommt, übergeben wir diese per GET. Wir bedienen uns der Funktion session_id(), welche uns die Kennnummer ausgibt. Fragt sich nun noch, wie die Variable heißen muss, mit der die Session-ID übergeben werden kann. Überlicherweise ist das PHP_SESSID, aber es kommt wie immer auf die Konfiguration von PHP an. Ich habe zu Anfang diese Variable mit der Funktion session_name() selbst auf "id" festgelegt. (ende.php)<?php session_name('id');session_start();echo('<a href="' . <#$>_SESSION['link_url'] . '">' . <#$>_SESSION['link_name'] . '</a>');session_destroy();?> Unser zweites Skript beginnt wie das erste. Wir geben den Variablen-Namen an, in der PHP die Session-ID finden kann und starten die Sitzung. PHP findet also die Kennnummer und stellt fest, dass dazu Daten vorhanden sind, auf die wir nun ganz einfach über das superglobale Array <#$>_SESSION zugreifen können. In dem Beispiel wird durch die registrierten Daten ein Link ausgegeben. Anschließend wird die Sitzung gelöscht, dabei werden auch sämtliche gespeicherten Daten der Session auf dem Web-Server ins digitale Nirvana geschickt. Mit Sicherheit werden Sie ein paar Sachen feststellen: So kann es möglich sein, dass der generierte Link im zweiten Skript plötzlich eine Kennnummer dranhängen hat. Oder/und, dass das Beispiel eventuell auch super funktioniert, wenn im ersten Skript beim Weiter-Link gar keine Session-ID mit angegeben wird. Zu alledem komme ich in den folgenden Teilen, außerdem gibt es endlich ein praxisnahes Beispiel, welches ohne Sessions kaum mit vernünftiger Sicherheit realisierbar wäre.