Risposta esatta
Ho ricevuto molte email con la soluzione al questito che vi avevo posto la settimana scorsa.
L’obiettivo era creare una pagina HTML che la prima volta che viene chiamata ci chieda il nostro nome e le volte successive sappia riconoscerci chiamandoci per nome.
Per far questo il modo più semplice era utilizzare in maniera oculata i “mattoni” descritti nell’articolo della settimana scorsa.
Vi ricordo brevemente che tali mattoni erano forniti dalle funzioni:
function setCookie(NameOfCookie, value, expiredays)
function getCookie(NameOfCookie)
function delCookie (NameOfCookie)
Una volta in possesso dei mattoni, si trattava soltanto di utilizzarli, ed è quello che è stato fatto da (quasi) tutti quelli che mi hanno mandato la soluzione. Tra le tante, naturalmente molto simili tra loro, ho scelto quella di Marcello di Torino, ma solo perché la prima arrivata (addirittura poche ore dopo la pubblicazione…).
La soluzione
Eccola, si tratta di un file HTML statico con il seguente contenuto:
Prova utilizzo Cookies
Ricarica la pagina.
/
Come vedete il cuore del codice sta nella funzione Init() che viene eseguita all’evento Load della pagina, come si può vedere nel tag
.Ogni volta che la pagina viene visitata viene letto il valore del cookie, naturalmente la prima volta la funzione getCookie() non troverà il cookie e restituirà un null.
Testando questo valore siamo in grado di capire se è la prima volta che la pagina viene visitata e quindi possiamo mostrare la richiesta del nome all’utente:
L’utente inserisce il suo nome e questo viene memorizzato all’interno del cookie.
La volta successiva la lettura del cookie non restituirà null, ma il nome che era stato inserito in precedenza, pertanto la pagina sarà in grado di mostrare all’utente il messaggio di bentornato.
Per eliminare il cookie è sufficiente utilizzare il link apposito che utilizza la funzione delCookie() e permette, all’accesso successivo, l’inserimento di un nuovo nome.
Conclusioni
Adesso ci sono i mattoni e c’è anche una delle possibili implementazioni.
Che dire? Obiettivo raggiunto!