ALLWEB free linguaggio PHP. Descrizione delle sessioni con il linguaggio php, dalla costruzione alla gestione.

ALLWEB  


Home  -  Mappa directory Aggiungimi a Preferiti
PHP
» Introduzione
» In locale
» File .ini
» Struttura
» Variabili
» Costanti
» Array
» Operatori
» Cicli
» Funzioni
» Funzioni utente
» Include/require
» Sessioni
» Dinamico Get
» Dinamico Post
» Php e file .txt

MySql
» Introduzione
» PhpMyAdmin
» Connessione
» Query
» Funzioni
» Errori
» Esempio

Sessioni:

La sessione è il modo più semplice per riconoscere un utente da quando si collega al server a quando interrompe il collegamento.
Per essere più chiari immaginiamo di fornire una password per un'area protetta e poi di navigare. Per ogni nuova pagina dovremo ridigitare la password, ma non è così. Questo perché la nostra sessione è sempre attiva, di conseguenza il server si ricorda che abbiamo già inserito la password e siamo abilitati.

Il funzionamento delle sessioni è molto semplice, il server apre una sessione e gli assegna un nome univoco. Analizza l'utente, raccoglie i dati che vogliamo e li salva in un file che porta lo stesso nome della sessione. Nello stesso tempo deposita un cookie nella macchina dell'utente. Ogni volta che ne ha bisogno dal cookie estrae i dati per risalire alla sessione e al file salvato. In pratica abbiamo una memoria virtuale salvata sul server.
Ogni volta che interrompiamo il collegamento il server cancella tutto.

Importante:
Come abbiamo visto la sessione salva un cookie nel browser di chi naviga. Per ottenere questo dobbiamo porre la funzione che inizia la sessione prima di ogni altro dato in output dal server. In pratica nessun altra funzione di uscita deve precedere questa funzione, neppure il codice HTML!!



Funzioni e codici:

session_start(); Funzione che apre una sessione.

session_destroy(); Funzione che distrugge una sessione.

session_register("..."); Salva una variabile nella sessione. (Si scrive solo il nome senza $. Il valore della variabile va inserito nel codice sottostante, in pratica la macchina lo salva da sola.)

session_unset(); Distrugge le variabile nella sessione.

$PHPSESSID Il nome della variabile globale che contiene il codice univoco di 32 caratteri che distingue la sessione. (Se scriviamo echo $PHPSESSID; scriviamo 32 caratteria a video se la sessione è attiva.)



Codice e dove inserirlo:

Solitamente una connessione si apre così:
<?
session_start();//Apriamo la sessione
session_register("nomevariabile");//Salviamo una variabile nella sessione
....//Calcoli o funzioni con la sessione
....
session_register("nomevariabile2");//Salviamo una variabile nella sessione
session_register("....");//Possiamo salvare quante variabili vogliamo

$nomevariabile=.....;//Definiamo la variabile
$nomevariabile2=.....;//Definiamo la variabile2
....//Calcoli o funzioni con la sessione
....
?>


Il codice per aprire una sessione va inserito prima del codice HTML.
Esempio:
<?
session_start();
....
?>
<HTML>
...
...
...
</HTML>


Esempio2:
Nel caso si voglia distruggere una sessione e riaprirne un'altra, magari perchè alcuni dati non influenzino la pagina corrente si può scrivere così:
<?
session_start();//Distruggo la vecchia sessione
session_unset();
session_destroy();
session_start();//Apro una nuova sessione
....
?>
<HTML>
...
...



Altra soluzione:

Come abbiamo visto una sessione salva un cookie nel browser utente.
Ma se il navigatore non ha i cookie abilitati? Semplice, non si apre la sessione.

Per ovviare a questo problema il linguaggio PHP ci mette a disposizione un'altra soluzione, che però perde in sicurezza.
In questo caso possiamo passare i dati tramite URL, ossia le query string.
La sicurezza di questo procedimento è compromessa dal fatto che un malintenzionato potrebbe prendere nota del codice di sessione. (possibilità comunque remota).

Per procedere con questa soluzione dobbiamo inserire un codice in ogni collegamento (link) a pagine che necessitano della sessione.

<A HREF="nuovapagina.php?<?php echo SID?>">clicca qui</A>


Come abbiamo visto all'interno della query abbiamo inserito <?php echo SID?>. Questa istruzione può essere inserita solo in query che puntano a pagine del nostro sito (per ragioni di sicurezza).

SID è una costante che viene definita solo se il browser utente non supporta i cookies. Nel caso sia stato spedito il cookie SID è una costante stringa vuota, pertanto non comporterà nessun problema di gestione.


Per togliere i dubbi nati queste poche righe teoriche, vi invitiamo a leggere l'articolo sul contatore con sessioni.


Programmazione
» HTML
» CSS
» JAVASCRIPT

Utility
» Tavolozza colori
» Crea metacomandi
» Crea pop-up

Script
Motore di ricerca script
Javascript PHP

Articoli
» Php Contatore
» Php Contatore .txt
» Php Database .txt
» Php Redirect
» Php Info-Navigatori
» Php-Css caratteri
» Php register_globals
» Ottimizzare siti
Sezione linguaggio php di ALLWEB free. Costruire e gestire una sessione in ogni suo aspetto. Come interagire con il navigatore tramite le sessioni.
Pagina Link