session_id în PHP

Returnează identificatorul sesiunii curente sau, înainte de session_start, setează ce identificator să fie folosit.

Sintaxă
session_id(?string $id = null): string|false

Ce face session_id

Fără parametru, session_id returnează identificatorul sesiunii active (cel din cookie-ul PHPSESSID), sau un text gol dacă nu există sesiune.

Cu parametru, setează identificatorul folosit de următorul session_start(). Se folosește rar, de exemplu în API-uri care primesc sesiunea printr-un antet, nu prin cookie. Nu accepta niciodată un identificator venit nevalidat de la utilizator.

Parametri

Parametru Descriere
$id Opțional. Identificatorul de folosit, apelat înainte de session_start().

Ce returnează

Identificatorul curent (sau text gol), ori false la eroare.

Exemple

Exemplul 1: Înainte și după pornirea sesiunii

<?php
var_dump(session_id());

session_start();
var_dump(session_id());

Rezultat în browser

string(0) ""
string(32) "27efc221938daa0305097068ba087548"

Greșeli frecvente

  • Setezi session_id($_GET["sid"]). Un atacator poate impune un identificator cunoscut (session fixation). Lasă PHP să genereze identificatorii.

Comenzi înrudite

  • session_start: Pornește sau reia sesiunea vizitatorului, ca să poți păstra date între pagini în $_SESSION.
  • session_regenerate_id: Schimbă identificatorul sesiunii și păstrează datele. Se apelează la autentificare, contra atacurilor de tip session fixation.
  • session_create_id: Generează un identificator de sesiune nou și sigur, opțional cu un prefix, fără să pornească o sesiune.