Beispiele
Anmerkung: Seit PHP 4.1.0 steht $_SESSION genau wie $_POST, $_GET, $_REQUEST und so weiter, als globale Variable zur Verfügung. Im Gegensatz zu $HTTP_SESSION_VARS ist $_SESSION immer global. Deshalb brauchen Sie für $_SESSION nicht das Schlüsselwort global zu verwenden. Bitte beachten Sie, dass in dieser Dokumentation nun überall $_SESSION verwendet wird. Sie können $_SESSION durch $HTTP_SESSION_VARS ersetzen, wenn Sie Letzteres bevorzugen. Beachten Sie auch, dass Sie Ihre Session mit session_start() starten müssen, bevor die Verwendung von $_SESSION zur Verfügung steht.
Für die Schlüssel des assoziativen $_SESSION-Arrays gelten die selben Beschränkungen, wie für die Bezeichnungen von regulären Variablen in PHP, d.h. sie dürfen nicht mit einer Zahl, sondern müssen mit einem Buchstaben oder Unterstrich beginnen. Um weitere Deteils zu erhalten, siehe Abschnitt Variablen.
Falls register_globals deaktiviert ist, können nur Bestandteile des globalen assoziativen Arrays $_SESSION als Session-Variablen registriert werden. Wiederhergestellte Session-Variablen stehen nur im Array $_SESSION zur Verfügung.
Aus Gründen der Verbesserung der Sicherheit und der Lesbarkeit des Codes wird die Verwendung von $_SESSION (oder $HTTP_SESSION_VARS bei PHP 4.0.6 oder niedriger) empfohlen. Mit $_SESSION werden die Funktionen session_register(), session_unregister() und session_is_registered() nicht benötigt. Auf die Session-Variablen kann wie auf jede normale Variable zugegriffen werden. Beispiel 1. Registrierung einer Variablen mit $_SESSION.
PHP:
<?php
session_start();
// Verwenden Sie bei PHP 4.0.6 oder niedriger $HTTP_SESSION_VARS
if (!isset($_SESSION['zaehler'])) {
$_SESSION['zaehler'] = 0;
} else {
$_SESSION['zaehler']++;
}
?>
Beispiel 2. Aufheben der Registrierung einer Variablen mit $_SESSION und deaktiviertem register_globals.
PHP:
<?php
session_start();
// Verwenden Sie bei PHP 4.0.6 oder niedriger $HTTP_SESSION_VARS
unset($_SESSION['zaehler']);
?>
Beispiel 3. Aufheben der Registrierung einer Variablen mit aktiviertem register_globals, nachdem sie unter Verwendung von $_SESSION registriert wurde.
PHP:
<?php
session_start();
// Ab PHP 4.3, können Sie auch einfach das vorige Beispiel benutzen.
session_unregister('count');
?>
Wenn register_globals aktiviert ist, kann jede globalen Variable als Session-Variable registriert werden. Beim Neustart einer Session werden diese Variablen als entsprechende globale Variablen wiederhergestellt. Da PHP wissen muss, welche globalen Variablen als Session-Variablen registriert sind, muss der Benutzer Variablen mit der Funktion session_register() registrieren. Sie können das vermeiden, indem Sie einfach Einträge in $_SESSION setzen.