session_gc în PHP

Pornește manual ștergerea sesiunilor expirate și returnează câte au fost șterse.

Sintaxă
session_gc(): int|false

Ce face session_gc

PHP șterge sesiunile vechi (mai vechi de session.gc_maxlifetime secunde, implicit 1440) în mod aleatoriu, la o mică parte din apeluri session_start(). Pe site-uri cu trafic mic sau cu această curățare dezactivată, fișierele se adună.

session_gc face curățarea la cerere, de obicei dintr-un script rulat periodic (cron). Are nevoie de o sesiune activă.

Ce returnează

Numărul de sesiuni șterse, sau false la eroare.

Exemple

Exemplul 1: Curățare din cron

<?php
// curata-sesiuni.php, rulat la fiecare oră din cron
session_start();
$sterse = session_gc();
session_destroy();

echo "Sesiuni expirate șterse: $sterse";

Rezultat posibil (diferă la fiecare rulare)

Sesiuni expirate șterse: 37

Greșeli frecvente

  • Apelezi session_gc() fără session_start(). Primești Session cannot be garbage collected when there is no active session.

Comenzi înrudite

  • session_start: Pornește sau reia sesiunea vizitatorului, ca să poți păstra date între pagini în $_SESSION.
  • session_destroy / session_unset: Șterge datele sesiunii curente de pe server. Se folosește la deconectare (logout).
  • session_save_path: Returnează sau schimbă directorul în care se salvează fișierele sesiunilor.