PHP 4.3

9.10.2 Benutzung von Sessions

Vorbereitung

Um Dateien auf dem Server speichern zu können, muss der PHP-Interpreter wissen, wo dies geschehen soll. Suchen Sie in der Datei php.ini den Eintrag
session.save_path = \tmp
und geben Sie statt \tmp einen Verzeichnispfad Ihrer Wahl an. Achten Sie darauf, dass der Ordner, den Sie hier als Speicherort für die Session-Dateien angeben, auf dem Rechner existiert, bzw. legen Sie gegebenenfalls einen eigenen Ordner zu diesem Zweck an.

Beginn der Session

Genau wie bei Cookies müssen die Sessionfunktionen zu Beginn einer Seite, also vor dem eigentlichen HTML-Dokument aufgerufen werden. Um eine Seite als zur Session zugehörig zu kennzeichnen, verwenden Sie die Funktion session_start(). Beim ersten Aufruf, normalerweise also, wenn ein Benutzer die Startseite Ihres Webs betritt, wird auf dem Server eine Datei erzeugt, die Ihrem Skript von nun an zur Speicherung von Werten zur Verfügung steht. Außerdem wird die sogenannte Session-ID erzeugt, eine lange Zufallsfolge von hexadezimalen Ziffern, die diese Session, insbesondere diesen Benutzer, eindeutig identifiziert. Falls die Cookie-Funktion aktiviert ist, wird sie automatisch in einem Cookie auf dem Rechner des Benutzers gespeichert.

Beim zweiten Aufruf von session_start() auf einer der Folgeseiten wird die zur Session gehörende Datei anhand der gespeicherten ID identifiziert und ausgelesen, so dass alle dort gespeicherten Variablen benutzt werden können.

Anmerkung: Ruft eine Seite die Funktion session_start() nicht auf, kann sie nicht auf die in der Session gespeicherten Variablen zugreifen!

Speicherung von Sessionvariablen

Sinn und Zweck der Benutzung von Sessions ist es, Werte von Variablen über mehrere Seiten hinweg zu speichern. Das tun Sie im globalen Array $HTTP_SESSION_VARS. Falls Sie eine Variable in der Session speichern wollen, weisen Sie einfach $HTTP_SESSION_VARS["variablenname"] den zu speichernden Wert zu. Ab jetzt steht $HTTP_SESSION_VARS["variablenname"] in der aktuellen und allen im weiteren Verlauf der Session angeforderten Seiten zur Verfügung und kann wie jede normale Variable benutzt werden. Auch hier gibt es wieder einen Unterschied zu Cookies: Sie brauchen eine Seite nicht zweimal aufzurufen, die Sessionvariablen sind sofort verfügbar.

Ende der Session

Grundsätzlich wird eine Session beendet, wenn der Benutzer die zur eigenen Website gehörenden Seiten verlässt, den Browser schließt oder eine Zeit lang nicht auf die Session-Datei zugreift. Leider bleibt die Session-Datei bei dieser automatischen Beendigung bestehen, ist nur nicht mehr zugänglich. Um die Datei tatsächlich von der Festplatte des Servers zu löschen, sollten Sie die Funktion session_destroy() aufrufen.

Insgesamt kann die Benutzung einer Session also so aussehen:

Startseite:

 <?php
  session_start();
  $HTTP_SESSION_VARS["variable"] = "Ich bin in einer Session-Datei
  gespeichert.";
 ?>

Erste Folgeseite:

 <?php
  session_start();
  echo $HTTP_SESSION_VARS["variable"];
 ?>

Endeseite:

 <?php
  session_start();
  session_destroy();
 ?>

Anmerkung: In der letzten Seite ist es auch nach dem Aufruf von session_destroy() noch möglich, auf die Sessionvariablen zuzugreifen. Sie sind erst in einer später angeforderten Seite nicht mehr zugänglich.

 

Kommentare (0)

Ihr Kommentar

Name