Session-Funktionen
PHP Manual

session_start

(PHP 4, PHP 5, PHP 7)

session_startErzeugt eine neue Session oder setzt eine vorhandene fort

Beschreibung

bool session_start ( void )

session_start() erzeugt eine Session oder nimmt die aktuelle wieder auf, die auf der Session-Kennung basiert, die mit einer GET- oder POST-Anfrage oder mit einem Cookie übermittelt wurde.

Wenn session_start() aufgerufen wird oder eine Session automatisch startet, ruft PHP die Öffnen- und Lesen-Routinen der Session-Speicherfunktion auf. Dies ist entweder eine eingebaute Speicherfunktion, die standardmäßig mitgeliefert wird oder von Erweiterungen (wie z.B. SQLite oder Memcached) zur Verfügung gestellt wird oder eine eigene Funktion, die mittels session_set_save_handler() definiert wurde. Die Lesen-Routine ruft alle vorhandenen Sessiondaten (abgespeichert in einem speziellen serialisierten Format) ab und deserialisiert sie, um damit die $_SESSION-Superglobale zu füllen.

Um eine benannte Session zu verwenden, rufen Sie session_name() auf, bevor Sie session_start() aufrufen.

Wenn session.use_trans_sid aktiviert ist, registriert die Funktion session_start() eine interne Ausgaberoutine für das Umschreiben von URLs.

Verwendet ein Benutzer ob_gzhandler oder ähnliches mit ob_start(), dann ist die Reihenfolge der Funktionen wichtig für eine korrekte Ausgabe. Zum Beispiel muss ob_gzhandler vor Beginn der Session registriert werden.

Rückgabewerte

Falls die Session erfolgreich gestartet wurde, gibt diese Funktion TRUE zurück, andernfalls FALSE.

Changelog

Version Beschreibung
5.3.0 Falls der Start der Session fehlschlägt, wird FALSE zurückgegeben. Vorher wurde TRUE zurückgegeben.
4.3.3 Ab PHP 4.3.3 resultiert der Aufruf von session_start() nachdem die Session vorher gestartet wurde in einem Fehler der Stufe E_NOTICE. Der zweite Start der Session wird in diesem Fall einfach ignoriert.

Beispiele

Beispiel #1 Ein Session-Beispiel: seite1.php

<?php
// seite1.php

session_start();

echo 
'Willkommen auf Seite #1';

$_SESSION['farbe'] = 'grün';
$_SESSION['tier'] = 'Spinne';
$_SESSION['zeit'] = time();

// Funktioniert, falls das Session-Cookie akzeptiert wurde
echo '<br /><a href="seite2.php">Seite 2</a>';

// Oder die Session-ID mit übergeben, für den Fall, dass sie benötigt wird
echo '<br /><a href="seite2.php?' SID '">Seite 2</a>';
?>

Nach dem Aufruf von seite1.php enthält automatisch auch die zweite Seite, seite2.php, die Session-Daten. Lesen Sie Session Funktionen, um weitere Informationen über die Übermittlung der Session-ID zu erhalten. Dort wird zum Beispiel erklärt, worum es sich bei der Konstanten SID handelt.

Beispiel #2 Ein Session-Beispiel: seite2.php

<?php
// seite2.php

session_start();

echo 
'Willkommen auf Seite #2<br />';

echo 
$_SESSION['farbe'];  // grün
echo $_SESSION['tier'];   // Spinne
echo date('d.m.Y H:i:s'$_SESSION['zeit']);

// Sie können auch hier, genauso wie bei seite1.php, SID verwenden
echo '<br /><a href="seite1.php">Seite 1</a>';
?>

Anmerkungen

Hinweis:

Um Cookie-basierte Sessions zu verwenden muss session_start() aufgerufen werden, bevor irgend etwas an den Browser geschickt wird.

Hinweis:

Die Verwendung von zlib.output_compression ist ob_gzhandler() vorzuziehen.

Hinweis:

In Abhängigkeit von der Konfiguration sendet diese Funktion verschiedene HTTP-Header. Siehe session_cache_limiter() um diese Header anzupassen,

Siehe auch


Session-Funktionen
PHP Manual