session_status în PHP

Returnează starea sesiunii: dezactivată, nepornită sau activă.

Sintaxă
session_status(): int

Ce face session_status

Rezultatul este una dintre constantele: PHP_SESSION_DISABLED (0, sesiunile sunt dezactivate pe server), PHP_SESSION_NONE (1, sesiunile merg, dar nu a fost pornită niciuna) și PHP_SESSION_ACTIVE (2, sesiunea este pornită).

Cel mai des este folosită ca să pornești sesiunea o singură dată, în cod care poate fi inclus din mai multe locuri.

Ce returnează

Una dintre constantele PHP_SESSION_*.

Exemple

Exemplul 1: Starea înainte de pornire

<?php
var_dump(session_status() === PHP_SESSION_NONE);
var_dump(PHP_SESSION_DISABLED, PHP_SESSION_NONE, PHP_SESSION_ACTIVE);

Rezultat

bool(true)
int(0)
int(1)
int(2)

Exemplul 2: Pornire o singură dată

<?php
function pornesteSesiunea(): void
{
    if (session_status() === PHP_SESSION_NONE) {
        session_start();
    }
}

pornesteSesiunea();
pornesteSesiunea(); // nu mai face nimic
echo session_status() === PHP_SESSION_ACTIVE ? "Sesiune activă" : "Fără sesiune";

Rezultat în browser

Sesiune activă

Greșeli frecvente

  • Verifici if (session_id()) ca să afli dacă sesiunea e pornită. session_id poate fi setat și fără sesiune activă. Folosește session_status.

Comenzi înrudite

  • session_start: Pornește sau reia sesiunea vizitatorului, ca să poți păstra date între pagini în $_SESSION.
  • session_write_close / session_commit: Salvează datele sesiunii și o închide, ca alte cereri ale aceluiași vizitator să nu mai aștepte după ea.