PHP Doku:: Sessionvariablen - reserved.variables.session.html

Verlauf / Chronik / History: (1) anzeigen

Sie sind hier:
Doku-StartseitePHP-HandbuchSprachreferenzVordefinierte Variablen$_SESSION -- $HTTP_SESSION_VARS [veraltet, nicht empfohlen]

Ein Service von Reinhard Neidl - Webprogrammierung.

Vordefinierte Variablen


$_ENV -- $HTTP_ENV_VARS [veraltet, nicht empfohlen]>>


$HTTP_SESSION_VARS [veraltet, nicht empfohlen]

$_SESSION -- $HTTP_SESSION_VARS [veraltet, nicht empfohlen]Sessionvariablen


Ein assoziatives Array, das die Sessionvariablen enthält und dem aktuellen Skript zur Verfügung stellt. Lesen Sie den Abschnitt Sessionfunktinen der Dokumentation, um weitere Informationen zur Verwendung zu erhalten.

$HTTP_SESSION_VARS enthält anfangs die selben Informationen, ist aber kein Superglobal. (Beachten Sie, dass $HTTP_SESSION_VARS und $_SESSION unterschiedliche Variablen sind und von PHP daher entsprechend behandelt werden.)


Version Beschreibung
4.1.0 Einführung von $_SESSION als Ablösung der bis dahin existierenden $HTTP_SESSION_VARS.



Dies ist eine 'Superglobale' oder automatisch globale Variable. Dies bedeutet, dass sie innerhalb des Skripts in jedem Geltungsbereich sichtbar ist. Es ist nicht nötig, sie mit global $variable bekannt zu machen, um aus Funktionen oder Methoden darauf zuzugreifen.

Siehe auch

5 BenutzerBeiträge:
- Beiträge aktualisieren...
17.11.2009 23:05
If you deploy php code and cannot control whether register_globals is off, place this snippet in your code to prevent session injections:

if (isset($_REQUEST['_SESSION'])) die("Get lost Muppet!");
charlese at cvs dot com dot au
5.07.2009 3:47
I was having troubles with session variables working in some environments and being seriously flaky in others. I was using $_SESSION as an array. It works properly when I used $_SESSION as pointers to arrays. As an example the following code works in some environments and not others.

//Trouble if I treate $form_convert and $_SESSION['form_convert'] as unrelated items
if (isset(
The following works well.
if (isset($_SESSION['form_convert'])){
$form_convert = $_SESSION['form_convert'];
$form_convert = array();
31.08.2008 23:43
Please note that if you have register_globals to On, global variables associated to $_SESSION variables are references, so this may lead to some weird situations.



$_SESSION['test'] = 42;
$test = 43;


Load the page, OK it displays 42, reload the page... it displays 43.

The solution is to do this after each time you do a session_start() :


if (ini_get('register_globals'))
    foreach (
$_SESSION as $key=>$value)
        if (isset(

Steve Clay
17.08.2008 15:28
Unlike a real PHP array, $_SESSION keys at the root level must be valid variable names.

[1][1] = 'cake'; // fails

$_SESSION['v1'][1] = 'cake'; // works

I imagine this is an internal limitation having to do with the legacy function session_register(), where the registered global var must similarly have a valid name.
jherry at netcourrier dot com
2.08.2008 1:16
You may have trouble if you use '|' in the key:

$_SESSION["foo|bar"] = "fuzzy";

This does not work for me. I think it's because the serialisation of session object is using this char so the server reset your session when it cannot read it.

To make it work I replaced '|' by '_'.

PHP Powered Diese Seite bei
The PHP manual text and comments are covered by the Creative Commons Attribution 3.0 License © the PHP Documentation Group - Impressum - mail("TO:Reinhard Neidl",...)