A Javascript Example

In questa sezione è contenuto un esempio creato da me, sfruttando in parte librerie disponibili in rete per la gestione di parte della situazione.

Problema: Come ricevere la pagina di provenieneza e informazioni sulla configurazione del computer di un utente che ci vuole contattare comodamente nella propria mail?

Elementi necessari: Per risolvere ottimalmente questo problema ho interfacciato un mio script con uno scrip perl proveniente da Matt's Archive. Le funzioni getCookie() e setCookie() le ho trovate in diversi file nella mia cache... provengono Duncan Crombie (dcrombie@chirp.com.au). La funzione MM_callJS(jsStr) l'ho lasciata fare a Dreamweaver.

Creare un cookie nella home page che registri i dati degli utenti. Per farlo, includere nella sezione <head> del file il codice seguente:

<script language="JavaScript">

var bikky = document.cookie;
var today = new Date();
var expiry = new Date(today.getTime() + 60 * 24 * 60 * 60 * 1000);
function setCookie(name, value)
{ // use: setCookie("name", value);
   if (value != null && value != "")
      document.cookie=name + "=" + escape(value) + "; expires=" + expiry.toGMTString();
   bikky = document.cookie; // update bikky
}
</script>
A questo punto includete da qualche parte nel vostro file:
<script language="JavaScript">
var nextyear = new Date();
nextyear.setFullYear(nextyear.getFullYear() +1);
setCookie ("version", document.lastModified);
setCookie ("provenienza", document.referrer);
setCookie ("lang", navigator.language);
setCookie ("os", navigator.platform);
</script>

Per ricevere i dati del vostro utente dovete creare un modulo (anche in un'altra pagina, come nel mio caso).

La limitazione di questo script è che l'utente deve cliccare su una checkbox nel vostro modulo.

<script language="JavaScript">
var bikky = document.cookie;

function getCookie(name)
{ // use: getCookie("name");
   var index = bikky.indexOf(name + "=");
   if (index == -1) return null;
   index = bikky.indexOf("=", index) + 1;
   var endstr = bikky.indexOf(";", index);
   if (endstr == -1) endstr = bikky.length;
      return unescape(bikky.substring(index, endstr));
}

function dati()
{
valcookie = "Pagina provenienza= " + getCookie ("provenienza") +
"; Lingua= " + getCookie ("lang") + "; Os= " + getCookie ("os"); document.modulo.Dati.value = valcookie; } function MM_callJS(jsStr) { //v2.0 return eval(jsStr) }

</script>

A questo punto inserite una checkbox nel vostro modulo con il seguente codice:

<input type="checkbox" name="Dati" onClick="MM_callJS('dati()')">

Il gioco è fatto. Quando l'utente cliccherà sul checkbox (voi dovete fare in modo ch ci clicchi), i dati del cookie verranno associati alla variabile e poi trasmessi. L'ideale è usare per trasmettere e decodificare il form qualcosa come FormMail.pl.