Start · Sprachen · PHP · Referenz · session_get_cookie_params

session_get_cookie_params

Funktion

Gibt die aktuellen Parameter des Session-Cookies als assoziatives Array zurück.

seit PHP 4.0.0 Kategorie: http

Signatur

session_get_cookie_params(): array

Beschreibung

session_get_cookie_params() liefert ein assoziatives Array mit den aktuellen Einstellungen des Session-Cookies, die entweder durch die PHP-Konfiguration (php.ini) oder durch einen vorherigen Aufruf von session_set_cookie_params() festgelegt wurden.

Das zurückgegebene Array enthält die Schlüssel lifetime (Lebensdauer in Sekunden), path (Pfad auf dem Server), domain (gültige Domain), secure (nur über HTTPS), httponly (kein JavaScript-Zugriff) und ab PHP 7.3 auch samesite (SameSite-Attribut).

Die Funktion ist besonders nützlich, wenn man die bestehenden Cookie-Parameter auslesen möchte, bevor man einzelne Werte überschreibt – so lassen sich bestehende Einstellungen bewahren und gezielt anpassen.

Typischer Einsatz ist das Verlängern der Session-Lebensdauer oder das Sicherstellen, dass der Cookie ausschließlich über sichere HTTPS-Verbindungen übertragen wird.

Rückgabewert

Typ
array
Beschreibung
Assoziatives Array mit den Cookie-Parametern: lifetime (int), path (string), domain (string), secure (bool), httponly (bool) und ab PHP 7.3 samesite (string).

Beispiele

Aktuelle Cookie-Parameter ausgeben

<?php
// Session noch nicht gestartet – Parameter aus php.ini auslesen
$params = session_get_cookie_params();

echo 'Lebensdauer : ' . $params['lifetime'] . ' Sekunden' . PHP_EOL;
echo 'Pfad        : ' . $params['path'] . PHP_EOL;
echo 'Domain      : ' . $params['domain'] . PHP_EOL;
echo 'Secure      : ' . ($params['secure']   ? 'ja' : 'nein') . PHP_EOL;
echo 'HttpOnly    : ' . ($params['httponly'] ? 'ja' : 'nein') . PHP_EOL;
echo 'SameSite    : ' . ($params['samesite'] ?? '(nicht gesetzt)') . PHP_EOL;
Lebensdauer : 0 Sekunden Pfad : / Domain : Secure : nein HttpOnly : nein SameSite : (nicht gesetzt)

Selektives Überschreiben einzelner Parameter

<?php
// Bestehende Parameter lesen, damit keine Werte verloren gehen
$params = session_get_cookie_params();

// Nur die Sicherheitsflags aktivieren; alle anderen Werte beibehalten
session_set_cookie_params([
    'lifetime' => $params['lifetime'],
    'path'     => $params['path'],
    'domain'   => $params['domain'],
    'secure'   => true,        // Cookie nur über HTTPS
    'httponly' => true,        // Kein Zugriff per JavaScript
    'samesite' => 'Strict',    // Schutz vor CSRF
]);

session_start();
$_SESSION['user'] = 'alice';
echo 'Session gestartet mit gehärtetem Cookie.';
Session gestartet mit gehärtetem Cookie.

// Wichtig · Fallstricke

Sicherheitshinweis: Standardmäßig sind secure und httponly in vielen PHP-Installationen deaktiviert. Für Produktivumgebungen sollten beide Flags sowie ein geeignetes samesite-Attribut (Lax oder Strict) gesetzt werden, um Session-Hijacking und CSRF-Angriffe zu erschweren.

Die Funktion muss vor session_start() aufgerufen werden, wenn die Parameter danach noch geändert werden sollen – bereits gesendete Cookies lassen sich nicht mehr nachträglich anpassen.

Ab PHP 7.3 ist das Feld samesite im Rückgabe-Array enthalten; in älteren Versionen existiert dieser Schlüssel nicht, was beim Zugriff zu einem Notice-Fehler führen kann – daher mit ?? oder isset() absichern.