Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Un contatore di accessi con i cookie

Link copiato negli appunti

L'argomento di questa settimana tocca la materia molto delicata del riconoscimento, seppur parziale, dei visitatori di una pagina Web. Tutti associamo i biscottini ai momenti più spensierati della nostra fanciullezza. Eppure qualche tempo fa questo termine, tradotto in inglese, ha creato non poche polemiche e diffidenze tra i navigatori del Web. Ma perchè tanta avversione verso i "cookie"?

In termini tecnici i cookie sono dei file di testo che alcuni siti depositano sul computer client, e che vengono interpretati dal server per raccogliere informazioni di vario genere sulle abitudini e i gusti dell'utente. Proprio su questo punto si sono focalizzate le maggiori perplessità di chi ritiene che tale tecnologia possa divenire uno strumento per violare, a scopi commerciali, la privacy di privati cittadini.

In altre parole i cookie sono una sorta di promemoria che il server deposita sui nostri hard disk per tenere memoria di informazioni che altrimenti andrebbero perse al momento dell'uscita dal sito.

Per chi fosse curioso e volesse conoscere tutti i cookie installati sul proprio hard disk, puo' trovarli, sempre che usi Win95, all'interno della cartella: WINDOWS/COOKIE. Questa piccola ricerca puo' essere utile per comprendere quali siti si servono di tale tecnologia.

È bene ricordare che sia Netscape che MSIE permettono di disabilitare i cookie, ovvero di confermarne o rifiutarne l'installazione.

L'esempio di questa settimana è volto a dimostrare le potenzialità dei cookie in uno solo dei loro utilizzi tra i tanti possibili: creare un contatore.

L'esempio si compone di 1 file:

  • esempio.htm

Per una più semplice comprensione del presente script fai continuamente riferimento al file sopracitato, verificando le procedure e i dati espressi. Solo in questo modo, con un continuo confronto, comprenderai le peculiarità di questo Javascript.

Si tratta dell'unico esempio di questo script, contenente tutto il codice necessario al corretto funzionamento dello stesso.

La sintassi script è interamente contenuta tra i tag <head> del documento:

<script type="text/javascript" language="javascript">
<!--
function getCookieVal (offset)

{

var endstr = document.cookie.indexOf (";", offset);

if (endstr == -1)

endstr = document.cookie.length;

return unescape(document.cookie.substring(offset, endstr));

}

function GetCookie (name)

{

var arg = name + "=";
var alen = arg.length;
var clen = document.cookie.length;
var i = 0;
while (i < clen)
{
var j = i + alen;
if (document.cookie.substring(i, j) == arg)
return getCookieVal (j);
i = document.cookie.indexOf(" ", i) + 1;
if (i == 0)

break;

}

return null;

}

function SetCookie (name, value)

{

var argv = SetCookie.arguments;
var argc = SetCookie.arguments.length;
var expires = (2 < argc) ? argv[2] : null;
var path = (3 < argc) ? argv[3] : null;
var domain = (4 < argc) ? argv[4] : null;
var secure = (5 < argc) ? argv[5] : false;
document.cookie = name + "=" + escape (value) +
((expires == null) ? "" : ("; expires=" + expires.toGMTString())) +
((path == null) ? "" : ("; path=" + path)) +
((domain == null) ? "" : ("; domain=" + domain)) +
((secure == true) ? "; secure" : "");
}

function DisplayInfo()

{
var expdate = new Date();
var visit;
expdate.setTime(expdate.getTime() + (24 * 60 * 60 * 1000 * 365));
if(!(visit = GetCookie("visit")))
visit = 0;
visit++;
SetCookie("visit", visit, expdate, "/", null, false);

var message;

if(visit == 1) message="Benvenuto nella mailing list di HTML.it";
if(visit== 2) message="Esempio di Massimiliano Valente";
if(visit == 3) message="Visita la sezione Jscript di HTML.it";
if(visit == 4) message="Inserisci un link di HTML.it nel tuo sito";
if(visit == 5) message="Visita la raccolta di applet con oltre 200 esempi";
if(visit == 6) message="Ultimo messaggio, oltre il quale appare la scritta
undefinde";

alert("n"+"Hai visitato questa paginan"+""+visit+"
"+"volte."+"n"+"n"+message);
}
function ResetCounts()

{

var expdate = new Date();
expdate.setTime(expdate.getTime() + (24 * 60 * 60 * 1000 * 365));
visit = 0;
SetCookie("visit", visit, expdate , "/", null, false);
leapto();
}
// -->
</script>

La riga di codice:

alert("n"+"Hai visitato questa paginan"+""+visit+" "+"volte."+"n"+"n"+message);

stabilisce il messaggio che verrà visualizzato nella finestra di alert di jscript quando il visitatore entrerà nella pagina. In particolare "+visit+" sta per il numero di visite conteggiate dal cookie; mentre la parte successiva fa riferimento al messaggio che accompagna oguna delle prime sei visite:

if(visit == 1) message="Benvenuto nella mailing list di HTML.it";
if(visit== 2) message="Esempio di Massimiliano Valente";
if(visit == 3) message="Visita la sezione Jscript di HTML.it";
if(visit == 4) message="Inserisci un link di HTML.it nel tuo sito";
if(visit == 5) message="Visita la raccolta di applet con oltre 200 esempi";
if(visit == 6) message="Ultimo messaggio, oltre il quale appare la scritta undefined";

Ogni frase si riferisce ad un messaggio. Oltre la sesta visita conteggiata dal cookie sarà visualizzata la scritta "undefined". Per aggiungerne altri è sufficiente inserire altre righe con l'unico accorgimento di garantire una numerazione progressiva.

Ultima operazione è la modifica del tag <body> di apertura che va fatta in questa modo:

<body bgcolor="white" vlink="blue" link="blue" onload="displayinfo()">

Dove il gestore di eventi "onload" richiama la funzione "DisplayInfo" impostata in precedenza.

Questo script è molto semplice ma serve ad introdurre il concetto di cookie alla luce dello script della prossima settimana, che di questi "biscotti" fa uso massiccio.

Ti consigliamo anche