Come usare i cookies

di Daniele Bochicchio, in ASP - Basi,

Il cookie: questo sconosciuto!

A parte gli scherzi, attorno ai cookies é nato e cresciuto col passare del tempo una specie di alone mistico, che ha fatto diventare questi dolci biscottini dei biscotti da cane.

I cookies altro non sono che dei file di solo testo che vengono mandati dal server al client per conservarci diverse informazioni. In molti casi sono davvero utili, specie per applicazioni con un budget molto basso, o che necessitano di velocità. Oramai oltre il 98% dei browser in giro li supporta (tra Internet Explorer 3.x, Navigator 2.x e Opera 2.x più le versioni successive).

A questo punto dunque, é necessaria una svolta: far capire finalmente ai nostri utenti che i cookie li usiamo solo per rendere la loro navigazione migliore . Per fare questo basta una piccola nota alla fine di ogni pagina con una spiegazione dell'uso che se ne fa sul nostro sito.

Preparati i nostri visitatori, adesso prepariamo tutto quello che ci serve. Naturalmente il modo migliore per scrivere codice ASP a mano é proprio il vecchio e caro Blocco Note (alias Notepad). Apriamolo ed incominciamo la nostra avventura.

Questo é un esempio del codice necessario per creare il cookie:

Response.Cookies("miosito").Expires=#January 1, 2000#
  Response.Cookies("miosito").Path="/miadir/"
  Response.Cookies("miosito").Secure=FALSE

Il significato non é molto complicato. In Expires va indicata la data in cui il cookie scadrà. In Path il percorso che ha il privilegio di scrivere/leggere sul cookie (se omesso viene preso quello corrente), mentre con Secure si specifica se il cookie é sicuro (crittografato, via SSL, etc...) oppure no. Nella maggior parte dei casi si deve impostare su FALSE.
Queste tre righe sono obbligatorie per far generare il cookie in maniera corretta.

A questo punto, per salvarci dentro dei valori si deve proseguire in questo modo:

Response.Cookies("miosito")("nome")="Daniele"
Response.Cookies("miosito")("cognnome")="Bochicchio"

insomma, seguire una sintassi del genere

Response.Cookies("nomecookie")("nomedellachiave")="valore"

Il codice deve essere inserito prima di ogni altro tag HTML (quindi prima di <html> o eventuali commenti) altrimenti il server genererà un errore, a meno che non abbiamo inpostato su True il comando Response.Buffer .

Invece per avere il valore di una chiave del nostro cookie, ad esempio per inserirla come valore in una campo di una form, basterà fare una cose del genere:

<input name="nome" type="text" value="<%=Request.Cookies("miosito")("nome")%>">
  <input name="nome" type="text" value="<%=Request.Cookies("miosito")("cognnome")%>">

A questo punto siamo perfettamente in grado di manipolare un cookie. Ci restano due cose da imparare. Come fare a sapere se il cookie contiene già delle chiavi, e come cancellarlo.

Per sapere se abbia o meno delle chiavi, bisogna usare

Request.Cookies("miosito").HasKeys

che conterrà una risposta booleana (TRUE o FALSE) che indica se il cookie ha chiavi oppure no.

Invece per cancellarlo, basterà far eseguire un comando del genere:

Response.Cookies("miosito")=""

Attenzione quindi ad impostare direttamente il valore di un cookie senza la chiave, perché ad esempio scrivendo

Request.Cookies("miosito")="Daniele"

tutte le chiavi precedentemente memorizzate (nome e cognome) andranno perse, dato che si va a scrivere sulla chiave principale che cancella tutte le altre. Lo stesso vale se io ho impostato solo la chiave principale e vado ad impostare altre chiavi.

I cookie, come dicevamo, sono un ottimo modo per aiutarvi, l'importante é usarli con parsimonia, spiegare ai visitatori che non fanno male, e sopratutto fare tanta pratica. Sembra facile, ma ci potrebbero essere delle difficoltà dietro l'angolo... E' sempre meglio provare e riprovare. Solo allora si potrà essere sicuri di aver imparato a maneggiare i nostri biscottini!

Contenuti dell'articolo

    Commenti

    Visualizza/aggiungi commenti

    | Condividi su: Twitter, Facebook, LinkedIn

    Per inserire un commento, devi avere un account.

    Fai il login e torna a questa pagina, oppure registrati alla nostra community.

    Approfondimenti

    Nessuna risorsa collegata