Le sessioni in Php

Il linguaggio php consente di passare informazioni da una pagina all'altra tramite le sessioni.

Cos'è una sessione? E' un modo alternativo al cookie per memorizzare informazioni. Mi consente di passare un dato da una pagina dinamica all'altra di un sito.

Come funziona una sessione

Quando l'utente naviga sulla pagina A, lo script php apre e scrive un'informazione sulla sessione.

Successivamente l'utente naviga sulla pagina B. Lo script php apre la sessione e legge l'informazione scritta in precedenza.

il funzionamento della sessione

In questo modo l'informazione è passata dalla pagina A alla pagina B.

Qual è la differenza tra cookie e sessioni?

Il cookie memorizza i dati sul computer client dell'utente.

La sessione memorizza i dati sul server del sito.

la differenza tra i cookie e le sessioni

Sono due modi alternativi per passare un'informazione da una pagina all'altra. Quello che cambia soltanto il mezzo ( client o server ).

Sia la sessione che il cookie hanno una durata prestabilita.

Cookie e server hanno pro e contro. I cookie usano il PC dell'utente per memorizzare le informazioni. Se l'utente ha disabilitato i cookie sul browser, la pagina non funziona. D'altra parte, le sessioni usano più risorse del server. Inoltre, le sessioni non sono lette dai motori di ricerca. Quindi, la pagina che utilizza le sessioni non è indicizzata sui search engine. Sono aspetti particolarmente importanti dal punto di vista seo.

Come inizializzare una sessione in php

Per usare la sessione in uno script php devo prima inizializzarla con l'istruzione session_start().

session_start();

Alla sessione viene associato un numero ID univoco per distinguerla dalle altre sessioni degli altri utenti.

Una volta inizializzata la sessione, posso usarla per scrivere e leggere i dati.

Importante. Devo inserire session_start() in tutte le pagine che usano la sessione, prima delle altre funzioni che gestiscono la sessione. Quando l'istruzione session_start() trova una sessione già aperta, continua a usare quest'ultima. Soltanto se non la trova, crea una nuova sessione.

Come scrivere dati nella sessione

Per scrivere un dato nella sessione utilizzo l'istruzione $_SESSION.

$_SESSION['nome_variabile']='dato';

Tra parentesi quadre indico il nome della variabile di sessione da utilizzare.

Posso scegliere qualsiasi nome. In genere, utilizzo un nome che faccia subito capire qual'è il contenuto della variabile.

Dopo il simbolo uguale scrivo il valore da assegnare alla variabile.

Un esempio pratico

Per scrivere il cognome dell'utente creo la variabile 'cognome'.

$_SESSION['cognome']='Minini';

Nella variabile di sessione cognome viene registrato il valore 'Minini'.

Come leggere i dati nella sessione

Per leggere i dati precedentemente scritti nella sessione utilizzo la funzione $_SESSION.

$_SESSION['nome_variabile'];

Posso utilizzare la funzione in qualsiasi altra istruzione php durante l'elaborazione dati.

Un esempio pratico

Per visualizzare il dato registrato nella variabile di sessione cognome scrivo:

echo($_SESSION['cognome']);

L'istruzione echo visualizza sullo schermo il contenuto della variabile, ossia "Minini".

Minini

E così via.

Come cancellare un dato nella sessione

Per eliminare un dato nella sessione utilizzo l'istruzione unset.

unset($_SESSION['name']);

Un esempio pratico

Per rimuovere la variabile di sessione cognome, digito la seguente istruzione:

unset($_SESSION['cognome']);

Questa istruzione distrugge soltanto il dato cognome, lasciando invariati tutti gli altri dati della sessione.

Come azzerare tutti i dati della sessione?

Per cancellare tutte le variabili di sessione, utilizzo la funzione session_unset().

session_unset();

Questa istruzione elimina tutti i dati registrati nella sessione, senza però chiudere la sessione stessa.

Come terminare una sessione

Per chiudere una sessione utilizzo l'istruzione session_destroy();

session_destroy();

Questa istruzione cancella la sessione e i dati contenuti.

E' indispensabile per le operazioni di logout.



Per scrivere un commento

knowledge base

Il linguaggio Php

FAQ