session_create_id în PHP

Generează un identificator de sesiune nou și sigur, opțional cu un prefix, fără să pornească o sesiune.

Sintaxă
session_create_id(string $prefix = ''): string|false

Ce face session_create_id

session_create_id folosește același generator ca PHP pentru sesiuni, cu aceleași setări de lungime. Este folosită în handler-ele de sesiune proprii sau când vrei identificatori care încep cu un prefix (de exemplu ID-ul utilizatorului).

Prefixul poate conține doar litere, cifre, virgulă și minus.

Parametri

Parametru Descriere
$prefix Opțional. Text pus la începutul identificatorului.

Ce returnează

Identificatorul nou, sau false la eroare.

Exemple

Exemplul 1: Identificator cu prefix

<?php
$id = session_create_id("u42-");

echo $id . "\n";
echo strlen($id) . " caractere";

Rezultat posibil (diferă la fiecare rulare)

u42-0f0b0113227c1ede005a82bc1491c380
36 caractere

Greșeli frecvente

  • Pui în prefix date sensibile (email, rol). Identificatorul ajunge în cookie și poate fi citit de oricine are acces la browser.

Comenzi înrudite

  • session_id: Returnează identificatorul sesiunii curente sau, înainte de session_start, setează ce identificator să fie folosit.
  • session_regenerate_id: Schimbă identificatorul sesiunii și păstrează datele. Se apelează la autentificare, contra atacurilor de tip session fixation.
  • session_set_save_handler: Înlocuiește stocarea sesiunilor cu funcții proprii, de exemplu pentru a le salva în baza de date.