session_start

(PHP 4, PHP 5, PHP 7, PHP 8)

session_startErzeugt eine neue Session oder setzt eine vorhandene fort

Beschreibung

session_start(array $options = []): bool

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-Speicherroutine auf. Dies ist entweder eine eingebaute Speicherroutine, die standardmäßig mitgeliefert wird oder von Erweiterungen (wie z. B. SQLite oder Memcached) zur Verfügung gestellt wird, oder eine eigene Routine, die mittels session_set_save_handler() definiert wurde. Die Lesen-Routine ruft alle vorhandenen Session-Daten (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 Session-Konfigurationsanweisungen überschreibt. Die Schlüssel sollten nicht das session.-Präfix beinhalten.

Zusätzlich zu den normalen Konfigurationsanweisungen 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 Session-Daten 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.

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="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 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>';
?>

Optionen an session_start() übergeben

Beispiel #3 Die Cookie-Gültigkeitsdauer übersteuern

<?php
// Ein persistentes Cookie senden, das 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 nicht am Zugriff zu hindern.
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

Hier Kannst Du einen Kommentar verfassen


Bitte gib mindestens 10 Zeichen ein.
Wird geladen... Bitte warte.
* Pflichtangabe
Es sind noch keine Kommentare vorhanden.

PHP cURL-Tutorial: Verwendung von cURL zum Durchführen von HTTP-Anfragen

cURL ist eine leistungsstarke PHP-Erweiterung, die es Ihnen ermöglicht, mit verschiedenen Servern über verschiedene Protokolle wie HTTP, HTTPS, FTP und mehr zu kommunizieren. ...

TheMax

Autor : TheMax
Kategorie: PHP-Tutorials

Midjourney Tutorial - Anleitung für Anfänger

Über Midjourney, dem Tool zur Erstellung digitaler Bilder mithilfe von künstlicher Intelligenz, gibt es ein informatives Video mit dem Titel "Midjourney Tutorial auf Deutsch - Anleitung für Anfänger" ...

Mike94

Autor : Mike94
Kategorie: KI Tutorials

Grundlagen von Views in MySQL

Views in einer MySQL-Datenbank bieten die Möglichkeit, eine virtuelle Tabelle basierend auf dem Ergebnis einer SQL-Abfrage zu erstellen. ...

admin

Autor : admin
Kategorie: mySQL-Tutorials

Tutorial veröffentlichen

Tutorial veröffentlichen

Teile Dein Wissen mit anderen Entwicklern weltweit

Du bist Profi in deinem Bereich und möchtest dein Wissen teilen, dann melde dich jetzt an und teile es mit unserer PHP-Community

mehr erfahren

Tutorial veröffentlichen

Ein data POST via Curl funktioniert nicht.

Anmorg93 Respekt, du bist ja nur um rund 10 Jahre zu spät dran.

Geschrieben von scatello am 21.11.2024 10:57:00
Forum: PHP Developer Forum
Ein data POST via Curl funktioniert nicht.

Hey, hatte auch mal das Problem. Oft liegt’s an fehlenden oder falschen Headern. Probier mal:​ $ch = curl_init(); curl_setopt($ch, CURLOPT_UR ...

Geschrieben von Anmorg93 am 21.11.2024 10:48:17
Forum: PHP Developer Forum
Probleme mit einem Linux-Befehl...

guten Tag liebe Community ;) hallo liebe Freunde auf der php-Ressource, hoffe, das landet im richtigen Unterforum also, womit ich im Moment zu ...

Geschrieben von dhubs am 15.11.2024 16:21:52
Forum: Off-Topic Diskussionen
ein .htaccess-File für eine WordPress-Installation - wie gehe ich hier vor.?

hallo und guten Tag, wie lege ich denn einen .htaccess für eine WordPress-Installation an - wie gehe ich hier vor. Kann man das denn so mache ...

Geschrieben von dhubs am 13.11.2024 15:52:54
Forum: Webmaster