Signatur
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
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;
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.';
// 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.