Leggere, scrivere ed eliminare cookie in Javascript
mercoledì 18 febbraio, 2009Leggere
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | /** * Restituisce il valore di un cookie * * @example * var res = getCookie( 'variabile' ); * */ function getCookie( name ) { var start = document.cookie.indexOf(name+"="); var len = start+name.length+1; if ((!start) && (name != document.cookie.substring(0,name.length))) return(null); if (start == -1) return(null); var end = document.cookie.indexOf(";",len); if (end == -1) end = document.cookie.length; return(unescape(document.cookie.substring(len,end)) ); } |
Scrivere
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | /** * Imposta un cookie * * @example * * setCookie( 'variabile', 'valore', 10 ); * */ function setCookie(name, value, expiredays, path, domain, secure) { var expires = new Date(); expires.setDate( expires.getDate() + expiredays ); var cookieString = name + "=" +escape(value) + ( (expires) ? ";expires=" + expires.toGMTString() : "") + ( (path) ? ";path=" + path : "") + ( (domain) ? ";domain=" + domain : "") + ( (secure) ? ";secure" : ""); document.cookie = cookieString; } |
Eliminare
1 2 3 4 5 6 7 8 9 10 11 12 13 | /** * Elimina un cookie * * @example * deleteCookie( 'variabile' ); * */ function deleteCookie(name, path, domain) { if (getCookie(name)) document.cookie = name + "=" + ( (path) ? ";path=" + path : "") + ( (domain) ? ";domain=" + domain : "") + ";expires=Thu, 01-Jan-70 00:00:01 GMT"; } |












10

Non ho capito una cosa: io vorrei mettere un bottone nel mio sito che abbia la funzione di cancellare tutti i cookie del mio sito i modo tale che al ricaricamento della pagina si aggiornino i file html.
Come posso fare?
@Paolo: dovresti essere più chiaro… come vedi dal codice proposto un cookie viene eliminato per nome. Quindi dovresti, prima di tutto, conoscere tutti i cookie che hai scritto. Comunque sia non ho capito cosa intendi per “si aggiornino i file html”… forse vuoi ottenere qualcos’altro che con i cookie non ha molto a che fare; mi riferisco all’aggiornamento… spiegami meglio il problema
Ok allora cercherò di essere più chiaro. Quando aggiorno le pagine del mio sito, ad esempio io modifico la index.html e la hosto sul ftp. Fin qui tutto bene. Quando vado sul mio sito, la home cioè l’index.html non è modificato. Per vederlo modificato dovrei ricaricare parecchie volte la pagina oppure cancellare i cookie. Per questo vorrei creare un bottone che cancelli i cookie emanati dal mio sito (di cui conosco i nomi) e che poi ricarichi automaticamente la pagina.
Spero di essere stato chiaro
@Paolo: il tuo problema NON penso dipenda dai cookie. Un cookie, infatti, può fare molte cose ma dubito impedisca il refresh della tua pagina nel browser; a meno che non sia stato creato appositamente un sistema di questa tipo. Quello che dovresti verificare, invece, è:
1) Le impostazioni del tuo Web Server riguardo la cache
2) Le impostazioni del tuo browser (forse usi Explorer quindi guarda la sezione che determina come deve comportarsi il browser quando ricarica la stessa pagina)
3) Se nalla tua index.html hai inserito il
TAG METAper forzare una pulizia della cacheSe comunque vuoi provare ad eliminare i cookie inserendo quel bottone che mi dicevi, il procedimento è abbastanza semplice: associ al bottone – o al link – una funzione Javascript che elimina cookie per cookie con la funzione presentata in questo post, tipo:
2
3
4
5
6
deleteCookie( "var1");
deleteCookie( "var2");
// ...
deleteCookie( "varn");
}
Ok Grazie 1000 comunque il mio sito è hostato su altervista. Forse è quello il prob.
Già che ci sono, vorrei chiedervi uno scambio link o uno scambio banner. Oppure se mi potete dire un “trucchetto” per rendere famoso un sito
@Paolo:
Scrivere (bene), rispondere e non avere fretta