Nundenn.
Um mit Sessionvariablen arbeiten zu können, musst du dem Server sagen, dass er eine Session starten soll:
Soweit so gut.
Nun muss der Server aber wissen, welchem Besucher, der sich gerade durch deine Seite klickt, er welche Session (Übers.: Sitzung/Mappe) zuordnen soll. Das geschieht über die sogenannte SessionID. So muss der Besucher sich mit jener SessionID beim Server authentifizieren, damit der Server weiß, welche Sessionvariablen zu welchem User gehören (wiederhol ich mich? O_o).
Diese SessionID's kann man durch 2 Wege übergeben lassen:
- Per Cookie beim Besucher speichern.
- Die SessionID über die Links an die Folgescripte übergeben.
Ich geh hier mal nur auf die Cookievariante ein, da sie in den meisten Fällen ausreicht.
Wenn PHP auf dem Server entspr. konfiguriert ist, legt es beim Start einer Session automatisch einen Cookie mit der SessionID beim Besucher ab.
Tut er es nicht, mach es so:
Damit ist dafür gesorgt, dass jedem Besucher auf jeder Scripseite seine eigene Session zugeteilt wird.
Diesen Codeschnipsel musst du übrigens auf jeder Scriptunterseite einfügen, in der auf die Sessionvariablen, die wir gleich setzen werden, zugegriffen werden soll.
Nun stell dir eine Session wie einen Ordner vor, zu dem nur ein bestimmter User mit der entsprechenden SessionID Zugang hat. In diesen Ordner kannst du dann Variablen und Werte ablegen. Diese Variablen und Werte sind dann nicht nur in dem Script gültig, in dem sie definiert wurden, sondern auf jeder einzelnen Scriptseite, auf der der obere Session-Startcode eingebunden ist.
Also setzen wir mal eine Sessionvariable:
angenommen dies steht in script1.php und der Besucher geht nun zu script2.php in der dies steht:
Dann wird "Zweiköpfiges Eichhörnchen" ausgegeben, und das obwohl du den Wert weder per Formular, noch per Adresse, noch direkt per Cookie übergeben hast.
Sessionvariablen kannst du so viele setzen wie du lustig bist:
Wie du siehst sind Sessions geradezu perfekt für ein Browseradventure.
PHP bietet in seinen Sessionfunktionen sogar eine Möglichkeit eine Session permanent zu speichern damit ein Besucher auch nach längerer Zeit wieder auf seine Session zugreifen kann, denn zumeist verfällt eine Session wieder nach 30 Min-2 Std. Inaktivität.
Allerdings müsstest du dich über diese Speicherfunktion selbst informieren, ich hab es bisher nie gemacht, es dürfte aber recht einfach sein.
Hast du noch Fragen dazu?
Wenn dich Sessions interessieren, lies dir ggf. auch noch diese Seite hier durch und vielleicht auch die Artikel über Session-Funktionen im Manual.