Php: avvio di sessione condizionato
14/06/2021In php session_start è una funzione incorporata che avvia una nuova sessione.
Ma se viene chiamata più di una volta, lo script genererà un errore E_NOTICE.
Talvolta, in alcuni scenari, magari a causa di include annidati o sequenziali può accadere di avviarla più di una volta generando l'errore E_NOTICE.
Una soluzione molto semplice consiste nel mettere l'avvio di sessione in una condizione di verifica preliminare dell'esistenza di una sessione già aperta con questa brevissima sintassi (versione php version 5.4.0 o superiore):
if(session_status() == PHP_SESSION_NONE)
{
//non esiste una sessione avviata
session_start();
}
session_status può restituire i seguenti valori:
PHP_SESSION_DISABLED se le sessioni sono disabilitate.
PHP_SESSION_NONE se le sessioni sono abilitate, ma non ne esiste nessuna.
PHP_SESSION_ACTIVE se le sessioni sono abilitate e ne esiste una