Come tutti sappiamo, esiste un qualcosa che ci registra come "loggati" nei forum ad esempio, ma cos' è quel qualcosa? Stiamo parlando di COOKIE e SESSIONI.
La differenza sostanziale tra i due è che nei cookie, a differenza delle sessioni, possiamo scegliere la durata di essi, ma registrandosi automaticamente nel browser, concedono la possibilità a chiunque abbia la possibilità di accedervi, di mostrarne il contenuto.
Per le sessioni il discorso è diverso, infatti durano finché si rimane nelle pagine nelle quali è registrato e quando si esce da esse, non chiudendo il browser, continuano a durare per circa 5 minuti. Se si chiude il browser, termineranno automaticamente all' istante.
Dopo aver visto in cosa si differenziano, direi di analizzare subito la parte pratica.
## SESSIONI ##
Creare le sessioni
Per registrare le sessioni, sarà necessario solamente inizializzarle, tramite session_start() e crearle, utilizzando la variabile global $_SESSION.
Attenzione: session_start() va prima di qualsiasi altro codice!
In questo modo, registreremo o aggiorneremo la variabile username con il contenuto, ad esempio Kaito. Anche con esse però, c'è un rischio di spoofing, chiamato session spoofing, per evitar ciò bisogna utilizzare l' apposita funzione session_regenerate_id, che genererà una nuova key per la sessione evitando spiacevoli incovenienti. Come session_start(), va messo prima di qualsiasi codice di output.
Leggere le sessioni
La lettura delle sessioni è semplice quanto intuitiva, basterà infatti utilizzare sempre la global var $_SESSION per otterne il contenuto.
Nel caso in cui non esista, la variabile a cui sarà assegnata rimarrà vuota, e in questo caso è utile controllare la sua esistenza, utilizzando la funzione isset().
Ovviamente è consigliabile mescolare ciò con un po' di sicurezza.
Cancellare le sessioni
La cancellazione di una sessione è semplicissima, basterà utilizzare la funzione unset(), racchiudendo in essa la global var $_SESSION con il nome della sessione.
Per distruggere, invece, tutte le sessioni presenti nel sito, bisognerà usare session_destroy().
## COOKIE ##
Creare i cookie
La creazione di un cookie non sarà rapidissima come quella delle sessioni, ma è egualmente semplice e sfrutterà la funzione setcookie(), che accetterà come parametri il nome, il contenuto, la scadenza, la path, il dominio, la sicurezza e l' httponly. Sostanzialmente, solo i primi tre son necessari.
In questo caso, il cookie durerà un' ora, in quanto 3600 sono i secondi in essa. Io consiglio vivamente, onde evitare problemi mentali sul calcolare il tempo, l' utilizzo di strtotime().
Leggere i cookie
La lettura dei cookie è analoga a quella delle sessioni, infatti basterà riprendere la global var $_COOKIE, cosa applicabile anche all' isset() per controllare se esiste.
Cancellare i cookie
La cancellazione di un cookie sfrutterà, nuovamente, la funzione setcookie(), impostandone come nome il nome del cookie da cancellare, il valore va bene anche vuoto e come data di scadenza un valore negativo, un' orario già passato.
La differenza sostanziale tra i due è che nei cookie, a differenza delle sessioni, possiamo scegliere la durata di essi, ma registrandosi automaticamente nel browser, concedono la possibilità a chiunque abbia la possibilità di accedervi, di mostrarne il contenuto.
Per le sessioni il discorso è diverso, infatti durano finché si rimane nelle pagine nelle quali è registrato e quando si esce da esse, non chiudendo il browser, continuano a durare per circa 5 minuti. Se si chiude il browser, termineranno automaticamente all' istante.
Dopo aver visto in cosa si differenziano, direi di analizzare subito la parte pratica.
## SESSIONI ##
Creare le sessioni
Per registrare le sessioni, sarà necessario solamente inizializzarle, tramite session_start() e crearle, utilizzando la variabile global $_SESSION.
Attenzione: session_start() va prima di qualsiasi altro codice!
PHP:
Perfavore,
Entra
oppure
Registrati
per vedere i codici!
In questo modo, registreremo o aggiorneremo la variabile username con il contenuto, ad esempio Kaito. Anche con esse però, c'è un rischio di spoofing, chiamato session spoofing, per evitar ciò bisogna utilizzare l' apposita funzione session_regenerate_id, che genererà una nuova key per la sessione evitando spiacevoli incovenienti. Come session_start(), va messo prima di qualsiasi codice di output.
PHP:
Perfavore,
Entra
oppure
Registrati
per vedere i codici!
Leggere le sessioni
La lettura delle sessioni è semplice quanto intuitiva, basterà infatti utilizzare sempre la global var $_SESSION per otterne il contenuto.
PHP:
Perfavore,
Entra
oppure
Registrati
per vedere i codici!
Nel caso in cui non esista, la variabile a cui sarà assegnata rimarrà vuota, e in questo caso è utile controllare la sua esistenza, utilizzando la funzione isset().
PHP:
Perfavore,
Entra
oppure
Registrati
per vedere i codici!
Ovviamente è consigliabile mescolare ciò con un po' di sicurezza.
PHP:
Perfavore,
Entra
oppure
Registrati
per vedere i codici!
Cancellare le sessioni
La cancellazione di una sessione è semplicissima, basterà utilizzare la funzione unset(), racchiudendo in essa la global var $_SESSION con il nome della sessione.
PHP:
Perfavore,
Entra
oppure
Registrati
per vedere i codici!
Per distruggere, invece, tutte le sessioni presenti nel sito, bisognerà usare session_destroy().
## COOKIE ##
Creare i cookie
La creazione di un cookie non sarà rapidissima come quella delle sessioni, ma è egualmente semplice e sfrutterà la funzione setcookie(), che accetterà come parametri il nome, il contenuto, la scadenza, la path, il dominio, la sicurezza e l' httponly. Sostanzialmente, solo i primi tre son necessari.
PHP:
Perfavore,
Entra
oppure
Registrati
per vedere i codici!
In questo caso, il cookie durerà un' ora, in quanto 3600 sono i secondi in essa. Io consiglio vivamente, onde evitare problemi mentali sul calcolare il tempo, l' utilizzo di strtotime().
PHP:
Perfavore,
Entra
oppure
Registrati
per vedere i codici!
Leggere i cookie
La lettura dei cookie è analoga a quella delle sessioni, infatti basterà riprendere la global var $_COOKIE, cosa applicabile anche all' isset() per controllare se esiste.
PHP:
Perfavore,
Entra
oppure
Registrati
per vedere i codici!
Cancellare i cookie
La cancellazione di un cookie sfrutterà, nuovamente, la funzione setcookie(), impostandone come nome il nome del cookie da cancellare, il valore va bene anche vuoto e come data di scadenza un valore negativo, un' orario già passato.
PHP:
Perfavore,
Entra
oppure
Registrati
per vedere i codici!