Gestire i cookie con Javascript

Mattepuffo's logo
Gestire i cookie con Javascript

Gestire i cookie con Javascript

Piccola premessa: a mio modo di vedere è sempre meglio gestire i cookie lato server (Asp.NET, PHP, Java,....).

Però a volte capita che si debba gestirli con Javascript (magari delegando solo informazioni meno importanti).

Vediamo tre funzioni da mettere nell'header.

La prima serve per settarli:

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;
}

Alla funzione passiamo un pò di parametri che con i quali costruiremo il cookie (var cookieString).

Il cookie si crea grazie a document.cookie.

Richiamndo questa funzione creeremo un cookie con le varie info passate; notate che in caso alcune info non vengono settate, verranno settate come vuote.

Altra funzione importante è quella per reperire le varie info settate:

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)));
}

Questa funzione vi mostra con un alert le varie info recuperate, passandogli il nome come unico argomento.

Nel caso in cui il cookie non venga trovato e il nome sia nullo la funzione non ritorna niente.

Infine la funzione per cancellarli:

function delCookie(name, path, domain) {
    if (getCookie(name)) {
        document.cookie = name + "=" + ((path) ? ";path=" + path : "") + ((domain) ? ";domain=" + domain : "") + ";expires=Thu, 01-Jan-70 00:00:01 GMT";
    }
}

Per cancellare un cookie si deve impostare una data passata.

Alla funzione passiamo tre argomenti; se esiste un cookie con quel nome gli diamo una data passata.

Ciao!!


Condividi

Commentami!