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.