# JavaScript/Cookie

JavaScript
Copertina Tutti i moduli · Sviluppo
* IntroduzioneJavaScript/Introduzione
* Il nostro primo programmaJavaScript/Il nostro primo programma
* Tipi di dati e variabiliJavaScript/Tipi di dati e variabili
* Operatori e castingJavaScript/Operatori e casting
* Le strutture di controllo
** SelezioneJavaScript/Selezione
** IterazioneJavaScript/Iterazione
* Funzioni definite dall'utenteJavaScript/Funzioni definite dall'utente
* Programmazione ad oggettiJavaScript/Oggetti
** Oggetto StringJavaScript/Oggetto String
** Oggetto MathJavaScript/Oggetto Math
** Oggetto DateJavaScript/Oggetto Date
** Oggetto ArrayJavaScript/Oggetto Array
* CookieJavaScript/Cookie
* TimerJavaScript/Timer
* L'oggetto windowJavaScript/BOM
** Gli eventi nel BOMJavaScript/Gli eventi nel BOM
** Oggetto documentJavaScript/Oggetto document
** Altri oggetti del BOMJavaScript/Altri oggetti del BOM
* Il Document Object ModelJavaScript/DOM
** Proprietà e metodiJavaScript/Proprietà e metodi del DOM
** Gli eventi nel DOMJavaScript/Gli eventi nel DOM
* Espressioni regolariJavaScript/Espressioni regolari
* AJAX
** Introduzione ad AJAXJavaScript/Introduzione ad AJAX
** Usare AJAXJavaScript/Usare AJAX
* Costruttori e prototipiJavaScript/Costruttori e prototipi
* AppendiceJavaScript/Appendice
* CreditiJavaScript/Crediti
Modifica il sommario
Una funzionalità molto interessante messa a disposizione da JavaScript è la possibilità di gestire i cookie. In informatica, i cookie sono piccoli file di testo memorizzati sul computer dell'utente che contengono informazioni salvate dai siti web. La comodità dei cookie sta quindi nella possibilità di memorizzare in modo permanente delle informazioni univoche rispetto ad un utente; hanno tuttavia lo svantaggio di poter essere eliminati e disabilitati dall'utente. Ciascun cookie è composto da alcuni parametri, tra i quali:
* nome: un nome identificativo per il cookie
* valore: il valore da memorizzare
* scadenza (expiration date): è opzionale, stabilisce la data di scadenza del cookie, cioè la data dopo la quale questi vengono eliminati dal disco rigido dell'utente.

## Impostare i cookie

In JavaScript per impostare i cookie usiamo la proprietà cookie dell'oggetto document passandole come valore una stringa contenente i vari parametri separati da punto e virgola. Ecco ad esempio una semplice stringa di cookie:
Questa stringa imposta un cookie NomeUtente al valore Ramac con scandenza 28 agosto 2007. Potremo salvare questo cookie con l'istruzione
La sintassi è quindi:
Nel caso si volesse inserire nella stringa del valore un punto e virgola, è necessario usare la funzione escape che converte tutti i caratteri particolari nel corrispondente esadecimale nel set di caratteri Latin-1. Questo vale anche per gli spazi, gli apostrofi, le virgole, ecc....
Per comodità, è possibile creare una funzione che crei i cookie partendo da tre parametri:

## Ottenere i cookie

Per ottenere i valori dei cookie relativi al proprio documento è necessario accedere alla proprietà document.cookie che restituisce una stringa contenente coppie di nome-valore di ciascun dato separate da un punto e virgola e uno spazio. Ad esempio:
Possiamo notare due punti importanti:
* mentre è possibile impostare valori come la data di scadenza del cookie, non è possibile ottenerli una volta modificati
* i dati per una comoda lettura necessitano di una manipolazione stringa
Per la lettura dei cookie, può risultare utile questa funzione che restituisce il valore di un cookie a partire dal suo nome:

## Verificare se i cookie sono attivi

Come è già stato accennato in precedenza, uno degli svantaggi dei cookie risiede nel fatto che possono essere facilmente disabilitati dall'utente; è pertanto necessario sviluppare soluzioni alternative ai cookie, soprattutto se sono parte essenziale della propria applicazione web.
Il modo più semplice per verificare se i cookie sono attivati è quello di crearne uno fittizio e verificare se è possibile ottenerne il valore. La seguente è una funzione che restituisce true se i cookie sono abilitati:

## Eliminare o sostituire un cookie

Poiché ad ogni nome corrisponde un solo cookie, per modificare il contenuto di un cookie chiamato NomeUtente è sufficiente la riga
Per eliminare un cookie, invece, basta sostituire al testo del cookie una stringa vuota:

## Librerie JavaScript per i cookie

Puoi utilizzare una libreria JavaScript per facilitare la gestione dei cookie, come js-cookie, o altre.