Il supporto delle sessioni in PHP consiste nel mantenere certi dati attraverso accessi successivi. Per esempio,
una volta autenticato un utente con Nome e Password validi per l’accesso ad alcune tabelle MySql, queste
variabili possono essere conservate per tutta la sessione (altrimenti bisognerebbe chiederle ogni volta che
accede al database)
Al visitatore che accede al vostro sito web viene assegnato un id unico, il cosiddetto id di sessione. Questo
viene registrato in un cookie sul lato utente o è propagato tramite l’URL.
Il supporto delle sessioni vi permette di registrare numeri arbitrari di variabili che vengono preservate
secondo richiesta. Quando un visitatore accede al vostro sito, PHP controllerà automaticamente (se
session.auto_start è settato a 1) o su vostra richiesta (esplicitamente tramite session_start() o implicitamente
tramite session_register()) se uno specifico id di sessione sia stato inviato con la richiesta. In questo caso , il
precedente ambiente salvato viene ricreato.
Tutte le variabili registrate vengono serializzate dopo che la richiesta è finita. Le variabili registrate che non
sono definite vengono marcate come indefinite. All’accesso successivo, queste non vengono definite dal
modulo di sessione fino a quando l’utente non le definisce più tardi.
Da PHP 4.1.0, $_SESSION è disponibile come variabile globale proprio come $_POST, $_GET,$_REQUEST e così via.
<?php
if (isset($_SESSION['count'])) {
$_SESSION['count']++;//incrementa la variabile count se esiste
}
else {
$_SESSION['count'] = 0;//altrimenti la crea e la azzera
}
Perché la variabile $_SESSION sia utilizzabile bisogna modificare il file php.ini nella directory WINDOWS
(per chi usa questo sistema operativo) settando session.auto_start =1 e creando, se non esiste, una
directory temp dove vengono registrate le variabili di sessione.
Opzioni di configurazione nel file php.ini
Riportiamo alcune tra le opzioni di configurazione del file php.ini
session.save_handler definisce il nome dell’handler che è usato per archiviare e rilasciare i dati
associati a una sessione. Di default è files.
session.save_path definisce l’argomento che è passato all’handler di sessione. Se scegliete handler
files di default, questo è il percorso dove i files vengono creati. Di default è /tmp. Se la profondità del
percorso session.save_path è più di 2, l’accumulo (gc) non sarà effettuato.
Attenzione
Se lasciate questo settato a directory leggibile da tutti /tmp (il default), altri utenti potrebbero essere in grado
di dirottare le sessioni prendendo la lista dei files in quella directory.
session.name specifica il nome della sessione che è usata come nome del cookie. Dovrebbe contenere
solo caratteri alfanumerici. Di default è PHPSESSID.
session.auto_start specifica se il modulo di sessione inizia una sessione automaticamente su
richiesta iniziale. Di default è 0 (disattivata).
session.cookie_lifetime specifica il tempo di vita in secondi del cookie che viene mandato al
browser. Il valore 0 significa "fino a che il browser viene chiuso". Di default è 0.
session.gc_maxlifetime specifica il numero di secondi dopo i quali i dati saranno considerati
‘spazzatura’ e cancellati.
session.use_cookies specifica se il modulo userà i cookies per archiviare l’id di sessione sul lato
client. Di default è 1 (attivo).
session.cookie_path specifica il percorso da stabilire in session_cookie. Di default è /.
Funzioni per gestire la sessione
bool session_destroy ( void )
session_destroy() distrugge tutti i dati associati alla sessione corrente. Non desetta nessuna delle variabili
globali associate alla sessione o desetta il cookie di sessione.
Questa funzione ritorna TRUE in caso di successo e FALSE in caso di fallimento nel distruggere i dati di
sessione.
<?php
// Inizializza la sessione.
// Se state usando session_name("qualcosa"), non dimenticatevelo adesso!
session_start();
// Desetta tutte le variabili di sessione.
session_unset();
// Infine , distrugge la sessione.
session_destroy();
?>
array session_get_cookie_params ( void )
La funzione session_get_cookie_params() restituisce un array con le informazioni sul cookie di sessione
corrente, l’array contiene i seguenti elementi:
- "lifetime" - La durata del cookie.
- "path" - Il percorso dove l’informazione è archiviata.
- "domain" – Il dominio di validità del cookie.
- "secure" – Il cookie dovrebbe essere spedito solo attraverso connessioni sicure. (Questo elemento è stato aggiunto in PHP 4.0.4.)
- string session_id ( [string id]) – restituisce l’id di sessione per la sessione corrente. Se id è specificato, sostituirà l’id di sessione corrente.
- string session_name ( [string name]) – ritorna il nome della sessione corrente. Se name è specificato, il nome della sessione corrente viene cambiato al suo valore.
- void session_set_cookie_params ( int lifetime [, string path [, string domain]]) - Imposta i parametri del cookie definiti nel file php.ini. L’effetto di questa funzione dura solo per la durata dello script.
- void session_unset ( void ) - La funzione session_unset() libera tutte le variabili di sessione correntemente registrate.
Popularity: 21% [?]
Vuoi essere sempre aggiornato??? Iscriviti ai feed o invia un trackback
Nessun commento, scrivi tu il primo!
Articoli correlati