Distruggi la sessione PHP

Distruggi la sessione PHP
Quando un utente visita un sito Web nel browser, il tempo passato da quell'utente su quel sito Web viene chiamato la sessione per quell'utente. Quando un utente chiude il browser o il logout dal sito, la sessione scade. Le informazioni sulla sessione possono essere archiviate utilizzando un cookie sul computer del client o utilizzando lo script PHP che viene archiviato nel server. Le informazioni memorizzate dal cookie possono essere facilmente hackerate dall'accesso non autorizzato. Quindi, il modo di archiviare le informazioni sulla sessione utilizzando il cookie non è garantito. PHP ha alcune funzioni integrate e variabili di sessione per mantenere e distruggere le informazioni sulla sessione degli utenti. Il modo per non stabilito la variabile di sessione e distruggere la sessione di PHP è stata mostrata in questo tutorial.

Variabile di sessione unset

I dati specifici della sessione possono essere rimossi utilizzando la funzione Unset (). La funzione session_unset () viene utilizzata per cancellare tutti i dati relativi alla sessione di una particolare sessione. PHP utilizza un array associativo $ _session per mantenere i dati della sessione.

Sintassi:

La sintassi del session_unset () La funzione ha dato di seguito.

void session_unset ();

Viene utilizzato per sconfiggere la sessione corrente cancellando tutti i dati relativi alla sessione dall'array $ _session. Non restituisce nulla.

Esempio-1: variabile di sessione unset

Rimozione della sessione utilizzando la funzione session_unset () è mostrata nell'esempio seguente. Crea un file PHP con il seguente script Crea una sessione per gli utenti autenticati e controlla un valore dell'array $ _session dopo aver distrutto la sessione. Un modulo viene utilizzato nello script per prendere il nome utente e la password.

Successivamente, questi valori verranno confrontati con i valori specifici per verificare l'autenticazione. Verrà creata una sessione utilizzando la funzione session_start () per l'utente se il nome utente e la password sono corretti. Se l'utente visiterà la pagina Web, la sessione verrà cancellata utilizzando la funzione session_unset () per verificare che la sessione corrente viene distrutta o meno.

// Controllare che il modulo sia inviato o no
if (isset ($ _ post ['invio'])

// Controlla i campi Nome utente e password sono vuoti o no
if (ISSET ($ _ POST ['un']) && ISSET ($ _ POST ['PW']))

$ username = $ _post ['un'];
$ password = $ _post ['pw'];
// Controlla l'autenticazione dell'utente
if ($ username == 'admin' && $ password == 'segreto')

// Avvia la sessione per l'utente autenticato
session_start ();
eco "";
// Controlla la variabile di sessione
if (isset ($ _ session ['name'])

// stampa il messaggio di benvenuto
Echo 'Bentornato.
';
// Unset la sessione per l'utente
session_unset ();
// Controlla la variabile di sessione dopo unset
Echo "Il valore della sessione dopo unset:".$ _Session ['name']."
";

altro

// Imposta la variabile di sessione
$ _Session ['name'] = 'amministratore';
// Stampa la variabile di sessione
Echo "La variabile di sessione è impostata per".$ _Session ['name']."
";

eco "";

altro

// Stampa un messaggio di errore per utente non valido
Echo "Nome utente o password non è impostato
";



altro

?>



Esempio di sessione non eseguita



Nome utente:



Parola d'ordine:









?>

Produzione:
Verrà visualizzato il seguente output dopo aver eseguito lo script sopra. L'utente deve fornire un nome utente e una password validi prima di inviare il modulo. Secondo lo script, il nome utente valido è 'amministratore'E la password è'segreto'.

Verrà visualizzato il seguente output se il nome utente corretto e la password vengono inviati dal modulo e verrà generata una nuova sessione per l'utente.

Verrà visualizzato il seguente output se l'utente rivisita nuovamente la pagina. Se la sessione esiste per l'utente, l'utente riceverà il messaggio ",Bentornato'e la funzione session_unset () distruggerà la sessione per quell'utente. Il messaggio di avviso verrà visualizzato nell'output perché la variabile di sessione non sarà definita dopo aver chiamato la funzione session_unset (). Ma questo messaggio di avviso può essere omesso usando ERROR_Reporting direttiva.

Distruggi la sessione PHP

La funzione session_destroy () viene utilizzata per distruggere tutte le variabili di sessione dei visitatori. Distrugge solo i dati della sessione ma l'array $ _sression $ _Session Php contiene i dati della sessione. I valori di questo array verranno rimossi se lo script viene terminato o l'utente chiude la sessione. L'array $ _Session può essere creato inizializzando un array vuoto.

Il cookie PhpSessid può essere conservato nel computer dell'utente senza alcun dato dopo aver distrutto la sessione se il cookie del browser è abilitato nel computer dell'utente. In questo caso, quando l'utente rivisiterà di nuovo la pagina, verrà generata una nuova sessione per l'utente anche il cookie PhpSessid. La sintassi di questa funzione ha mostrato di seguito.

Sintassi:

void session_destroy ();

Questa funzione non ha alcun argomento e non restituisce nulla.

Esempio-2: distruggere la sessione usando session_unset ()

Il modo per distruggere tutti i tipi di informazioni sulla sessione utilizzando la funzione session_unset () ha mostrato nell'esempio seguente. Crea un file PHP con il seguente script per creare una sessione predefinita per i visitatori generali, impostare il nome della sessione e la data di scadenza utilizzando la funzione setCookie () e stampare il nome della sessione dopo aver distrutto la sessione utilizzando la funzione session_unset ().

// Avvia la sessione per il visitatore
session_start ();
// Imposta il cookie di sessione per il visitatore
if (session_id () != "" || ISSET ($ _ cookie [session_name ()])
setCookie (session_name (), ", time () - 42000, '/');
// Stampa il nome di sessione predefinita
echo "Il nome della sessione predefinito è".session_name ()."
";
// Stampa la data di scadenza della sessione
Echo "La data di scadenza della sessione è".Date ('d-m-y', time ()+5000000)."
";
// Distruggi tutte le informazioni sulla sessione
session_destroy ();
if (session_id () == "")
Echo "La sessione è stata distrutta.";
?>

Produzione:

Verrà visualizzato il seguente output dopo aver eseguito lo script sopra. Qui, la sessione è stata creata con il tempo di scadenza e distrutta in seguito usando la funzione session_destroy ().

Conclusione

In questo tutorial sono stati spiegati due modi per distruggere le sessioni PHP. Le funzioni session_unset () e session_destroy () sono state utilizzate in questo tutorial per distruggere qualsiasi sessione esistente. Lo sviluppatore PHP può utilizzare una di queste funzioni per distruggere le sessioni in PHP.