Ora che sappiamo come gestire i dati in un database MySQL, passiamo a vedere come gestire le sessioni ed i cookie in PHP. Penso che tutti già sapete cosa siano i coockie, se non ne avete idea ho creato tempo fa un articolo che ne tratta in maniera molto semplice. Quando andiamo a visitare un’industria all’entrata qualcuno ci prende i dati e ci attacca un cartellino al camice, una sessione ha un funzionamento analogo, difatti viene aperta all’entrata dopo essersi fatti riconoscere e viene chiusa all’uscita. Capite bene che è alla base del funzionamento del login utente.
Quando facciamo il classico login, ci viene chiesto di inserire nome utente e password, se i dati sono già presenti in un database e siamo riconosciuti ci è permesso di fare delle cose che utenti normali non possono. Dal punto di vista del programmatore le operazioni da implementare sono queste:
Capite bene che le sessioni sono molto importanti per riconoscere un utente e consentirgli di fare operazioni che ad altri sono proibite. Alla chiusura della sessione, l’utente deve di nuovo identificarsi con un altro login, la sessione termina quando l’utente chiude il suo browser, non solo un singolo tab nei browser attuali. In php per aprire una sessione si deve inizializzarla con la funzione session_start() ed inserire il valore della variabile di sessione $_SESSION[‘mia_variabile’].
Le sessioni sono molto comode da utilizzare e soprattutto molto semplici, ma hanno una limitazione. Mettiamo che voglia che il mio utente abbia la possibilità di entrare anche il giorno dopo senza fare la login, come posso fare se ogni volta che chiude il browser la sessione viene cancellata? Utiliziamo in questo caso i cookie ( biscotti ) che vengono attaccati al browser del visitatore per un tempo che decidiamo noi e quindi anche una settimana o anche un mese o perfino 2 anni. C’è da dire però che più tempo si allunga la vita del cookie e più risulta insicuro, perché basta che un altro programmatore riconosca la nostra variabile cookie che consentirà, a chi vuole lui, di accedere al nostro sito. Per fortuna in php ci sono degli argomenti da dare che rendono la gestione dei cookie molto più sicura. Per inserire un cookie nel browser del nostro visitatore occorre utilizzare la funzione bool setcookie(string $name, string $value, int expire = 0, string $path, string $domain, bool $secure = false, bool $httponly = false). L’unico argomento obbligatorio è il primo, gli altri sono facoltativi. Vediamone il significato di ognuno:
Ricapitolando, per inserire un cookie dobbiamo utilizzare la funzione setcookie e dare un nome univoco, un valore per riconoscere il nostro utente, una data di fine dopo la quale il cookie verrà cancellato e gli altri argomenti mano a mano che vogliamo rendere più sicuro il sistema delle autorizzazioni nel nostro sito web.
Nella prossima lezione vi spiegherò un esempio concreto con codice sorgente per creare una finestra di login nella quale andiamo a verificare la presenza di un utente ed un paio di pagine che verrano visitate solo se si è autenticati.
Sono arrivato alla convinzione che un abbonamento per tutti i miei software gestionali sia il…
MerciGest è un software per la gestione del magazzino completamente gratuito. Continua a leggere→
In ufficio può capitare di doversi allontanare dal proprio posto di lavoro, ecco che allora…
In questo articolo vedremo quando è più o meno utile togliere la corrente ad un…
Dopo la pausa invernale dovuta al lavoro che devo fare per sostentarmi, eccomi di nuovo…
Vediamo come eliminare i files direttamente da Windows senza utilizzare il cestino. Continua a leggere→