session_save_path în PHP

Returnează sau schimbă directorul în care se salvează fișierele sesiunilor.

Sintaxă
session_save_path(?string $path = null): string|false

Ce face session_save_path

Cu stocarea implicită (files), fiecare sesiune este un fișier sess_<id>. Dacă session.save_path este gol, PHP folosește directorul temporar al sistemului.

Pe un server partajat, e mai sigur un director propriu, în afara directorului public, cu acces doar pentru utilizatorul aplicației. Calea se setează înainte de session_start().

Parametri

Parametru Descriere
$path Opțional. Noul director.

Ce returnează

Calea curentă (sau cea veche, dacă o schimbi), ori false la eroare.

Exemple

Exemplul 1: Director propriu pentru sesiuni

<?php
$implicit = session_save_path();

if (!is_dir("sesiuni")) {
    mkdir("sesiuni", 0700);
}
session_save_path(__DIR__ . "/sesiuni");

var_dump($implicit);
echo basename(session_save_path());

Rezultat

string(0) ""
sesiuni

Greșeli frecvente

  • Pui sesiunile într-un director accesibil din browser (de exemplu în public_html). Oricine poate citi fișierele și prelua sesiunile altora.

Comenzi înrudite

  • session_start: Pornește sau reia sesiunea vizitatorului, ca să poți păstra date între pagini în $_SESSION.
  • session_gc: Pornește manual ștergerea sesiunilor expirate și returnează câte au fost șterse.
  • session_module_name: Returnează sau schimbă modulul care stochează sesiunile (implicit files; altele: redis, memcached).