session_set_cookie_params în PHP

Sesiuni și cookie-uri PHP 4+ (opțiuni ca tablou: PHP 7.3+)

Setează durata, calea, domeniul și opțiunile de securitate ale cookie-ului de sesiune, înainte de session_start.

Sintaxă
session_set_cookie_params(array|int $lifetime_or_options, ?string $path = null, ?string $domain = null, ?bool $secure = null, ?bool $httponly = null): bool

Ce face session_set_cookie_params

Forma recomandată primește un tablou cu cheile lifetime, path, domain, secure, httponly și samesite. Setările se aplică doar cookie-ului trimis de următorul session_start() din scriptul curent.

Pentru un site pe HTTPS, secure și httponly ar trebui să fie mereu true, iar samesite "Lax" sau "Strict". Durata (lifetime) privește doar cookie-ul; datele de pe server expiră după session.gc_maxlifetime.

Parametri

Parametru Descriere
$lifetime_or_options Tabloul de opțiuni sau, în forma veche, durata în secunde.
$path, $domain, $secure, $httponly Opțional, în forma veche: restul setărilor.

Ce returnează

true la succes, false dacă antetele au fost trimise sau sesiunea e deja activă.

Exemple

Exemplul 1: Cookie de sesiune sigur, valabil o oră

<?php
session_set_cookie_params([
    "lifetime" => 3600,
    "path" => "/",
    "secure" => true,
    "httponly" => true,
    "samesite" => "Lax",
]);

$p = session_get_cookie_params();
echo "Durată: {$p['lifetime']} s, SameSite: {$p['samesite']}";

Rezultat

Durată: 3600 s, SameSite: Lax

Greșeli frecvente

  • Setezi lifetime la o săptămână și te miri că utilizatorii sunt deconectați după 24 de minute. Datele de pe server expiră după session.gc_maxlifetime; crește și această setare.

Comenzi înrudite

  • session_get_cookie_params: Returnează setările cookie-ului de sesiune: durată, cale, domeniu, secure, httponly, samesite.
  • session_start: Pornește sau reia sesiunea vizitatorului, ca să poți păstra date între pagini în $_SESSION.
  • setcookie: Trimite browserului un cookie: o valoare mică pe care browserul o păstrează și o trimite înapoi la fiecare cerere.