session_start
(PHP 4, PHP 5, PHP 7)
session_start — Erzeugt eine neue Session oder setzt eine vorhandene fort
Beschreibung
$options
= array()
] ) : boolsession_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.
Parameter-Liste
-
options
-
Als optionaler Parameter kann ein assoziatives Array mit Optionen angegeben werden, das die aktuell gesetzten Sessionkonfigurationsdirektiven übersteuert. Die Schlüssel sollten nicht das session.-Präfix beinhalten.
Zusätzlich zu den normalen Konfigurationsdirektiven kann auch eine read_and_close-Option angegeben werden. Falls auf
TRUE
gesetzt, führt sie dazu, dass die Session unmittelbar nach dem Auslesen geschlossen wird. Dadurch lässt sich eine unnötige Sperre vermeiden, wenn die Sessiondaten nicht verändert werden.
Rückgabewerte
Falls die Session erfolgreich gestartet wurde, gibt diese Funktion TRUE
zurück, andernfalls FALSE
.
Changelog
Version | Beschreibung |
---|---|
7.1.0 |
session_start() gibt nun FALSE zurück, und initialisiert
$_SESSION nicht mehr, wenn das Starten der Session fehlschlug.
|
7.0.0 |
Der Parameter options wurde hinzugefügt.
|
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
Ein grundlegendes Session-Beispiel
Beispiel #1 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="https://www.gaudry.be/de/php-rf-seite2.html">Seite 2</a>';
// Oder die Session-ID mit übergeben, für den Fall, dass sie benötigt wird
echo '<br /><a href="https://www.gaudry.be/de/php-rf-seite2.html?' . 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 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="https://www.gaudry.be/de/php-rf-seite1.html">Seite 1</a>';
?>
Optionen an session_start() übergeben
Beispiel #3 Die Cookie-Gültigkeitsdauer übersteuern
<?php
// Einen persistenten Cookie senden, der einen Tag lang gültig ist.
session_start([
'cookie_lifetime' => 86400,
]);
?>
Beispiel #4 Die Session lesen und schließen
<?php
// Sofern wir wissen, dass wir keine Daten zu verändern brauchen,
// können wir die Session unmittelbar nach dem Auslesen automatisch
// schließen, um eine Sperre für die Session zu vermeiden und
// andere Seiten während der Zeit am Zugriff nicht zu behindern.
session_start([
'cookie_lifetime' => 86400,
'read_and_close' => true,
]);
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
- Die session.auto_start Konfigurationsanweisung
- session_id() - Liefert und/oder setzt die aktuelle Session-ID
Deutsche Übersetzung
Sie haben gebeten, diese Seite auf Deutsch zu besuchen. Momentan ist nur die Oberfläche übersetzt, aber noch nicht der gesamte Inhalt.Wenn Sie mir bei Übersetzungen helfen wollen, ist Ihr Beitrag willkommen. Alles, was Sie tun müssen, ist, sich auf der Website zu registrieren und mir eine Nachricht zu schicken, in der Sie gebeten werden, Sie der Gruppe der Übersetzer hinzuzufügen, die Ihnen die Möglichkeit gibt, die gewünschten Seiten zu übersetzen. Ein Link am Ende jeder übersetzten Seite zeigt an, dass Sie der Übersetzer sind und einen Link zu Ihrem Profil haben.
Vielen Dank im Voraus.
Dokument erstellt 30/01/2003, zuletzt geändert 26/10/2018
Quelle des gedruckten Dokuments:https://www.gaudry.be/de/php-rf-session-start.html
Die Infobro ist eine persönliche Seite, deren Inhalt in meiner alleinigen Verantwortung liegt. Der Text ist unter der CreativeCommons-Lizenz (BY-NC-SA) verfügbar. Weitere Informationen auf die Nutzungsbedingungen und dem Autor.
Referenzen
Diese Verweise und Links verweisen auf Dokumente, die während des Schreibens dieser Seite konsultiert wurden, oder die zusätzliche Informationen liefern können, aber die Autoren dieser Quellen können nicht für den Inhalt dieser Seite verantwortlich gemacht werden.
Der Autor Diese Website ist allein dafür verantwortlich, wie die verschiedenen Konzepte und Freiheiten, die mit den Nachschlagewerken gemacht werden, hier dargestellt werden. Denken Sie daran, dass Sie mehrere Quellinformationen austauschen müssen, um das Risiko von Fehlern zu reduzieren.