Índex
Miguel A. Almarza
Departament d'Informātica
IES Mare de Deu de la Mercè



Capítol 5.

Alguns temes

  1. Les cookies.
    1. Els navegadors i les cookies.
    2. Descripció de les cookies.
    3. Implementació.
  2. Els fitxers js.

 

5.1 Les cookies

5.1.1 Els navegadors i les cookies.

Els navegadors disposen de diferents interpretes com l'intèrpret JavaScript o l'intèrpret del visual basic script. També permeten cridar per mitjà d'objectes incrustats a altres interpretes com el de Java o el de Flash 5.

Cap d'aquests interpretes disposa d'instruccions que puguin arribar a llegir o escriure en el disc de l'ordinador on s'està executant el navegador. Sembla lògic, ja que si, ho pagués fer els programes que s'envien des de els servidors d'internet podrien tenir accés a les dades dels ordinadors clients, informació totalment privada.

Per tant els navegadors no donen accés a les dades de l'ordinador a programes que s'executin a través d'aquest navegador.

Hi ha una excepció a aquesta regla. El navegador pot escriure i llegir un petit fitxer de text per cada document que arribi. Aquests fitxers es denominen cookies, i, com era previsible, qui llegeix i escriu aquesta informació i l'escriu és el navegador i la posa a disposició dels intèrprets a través de la propietat cookie de l'objecte document.

De fet podem dir que és el navegador el que fa aquesta tasca, ja que, té una sèrie d'utilitats que permeten a l'usuari configurar el navegador per a que treballi de diferents formes amb les cookies.

Així l'Explorer permet fer diferents nivells de seguretat:

Bloquear todas las cookies
  • Las cookies de todos los sitios Web se bloquearán
  • Los sitios Web no podrán leer las cookies existentes en el equipo
Alta
  • Las cookies de cualquier sitio Web que no utilice una directiva compacta (una declaración de privacidad condensada, legible para el equipo) serán bloqueadas .
  • Las cookies de cualquier sitio Web que use su información de identificación personal sin su consentimiento explícito serán bloqueadas
Baja
  • Las cookies de los sitios Web de terceros que no utilicen una directiva compacta (una declaración de privacidad condensada, legible para el equipo) serán bloqueadas
  • Las cookies de los sitios Web de terceros que usen su información de identificación personal sin su consentimiento implícito se eliminarán del equipo cuando cierre Internet Explorer
Aceptar todas las cookies
  • Todas las cookies se guardarán en el equipo
  • Las cookies existentes en el equipo podrán ser leídas por los sitios Web que las crearon

També es pot individualitzar el tipus d'acció enfront a cookies de llocs web determinats.

El Netscape permet solament activar o desactivar l'admisió de cookies pels lloc de manera individual.

5.1.2 Descripció de les cookies.

Les cookies es composen d'un nom i cinc camps de dades:

Nom del camp Descripció del contingut
value Cadena de caràcters amb el contingut de les dades que volem desar.
expires

Data en la que el navegador esborrarà la cookie del sistema. Si no es dona valor a aquest camp el navegador esborrarà la cookie en el moment en que s'acabi la sessiódel document.

Aquesta data ha de tenir el format Wdy, DD-Mon-YY HH:MM:SS GMT

domain Nom de l'ordinador servidor.
path

Camí dins l'ordinador servidor del fitxer que ha creat la cookie.

secure Dada de tipus boolean que indica si la web que ha creat la cookie és segura o no.

Les dades dels camps value i expires les hem de crear nosaltres i les dels altres tres camps no ja que el navegador els hi dona valor amb les dades de capçalera que rep de la pàgina.

El navegador intenta carregar la cookie de totes les pàgines cada que es criden. Per a trobar una cookie d'una pàgina utilitza les dades dels camps domain i path i si troba una cookie que concorda amb la pàgina que estem carregant llegeix les dades del disc.

Així, si volem posar una informació amb el nom, el telèfon, i el número de vegades que l'usuari ha carregat la pàgina actual en una cookie anomenada CookieProva haurem de construir un string com el següent:

5.1.3 Implementació.

Per fer una cookie hem de posar a la propietat document.cookie les dades de la cookie corresponent.

Així, si volem posar una informació amb el nom, el telèfon, i el número de vegades que l'usuari ha carregat la pàgina actual en una cookie anomenada CookieProva haurem de construir un string i assignar-lo a la propietat cookie:

document.cookie="CookieProva=Felip;93121212;45;expires=Thu-01-Jan-70 00:00:01 GMT"

La forma d'actuar serā crear dues funcions, una que ens posi la informaciķ adient en la cookie i altra que ens llegeix aquesta informació i en ens la posa en un array.

Funció ponCookie: Construeix les dades d'una cookie i la crea.
var hoy = new Date();
var hoyMasUnAnyo = new Date(hoy.getTime() + 365*24*60*60*1000);

function ponCookie(nombreCookie, valor, fechaBorrado)
{
    document.cookie = nombreCookie + "=" + valor +
                      ((fechaBorrado) ? "; expires=" + fechaBorrado.toGMTString() : "")
}

Ús de la funció:

ponCookie("cookiePrueba", "Felip;93121212;45;", hoyMasUnAnyo);

 

Funció obtenCookie: Llegeis les dades duna cookie i les posa a l'array dadesCookie.

var datosCookie = new Array();

function obtenDatosCookie()
{
   var i=0, j=0;
   var cookie=unescape(document.cookie);
   var finSubString=0;
   if (cookie.length>0)
   {
      i=cookie.indexOf("=",0)+1;
      while (finSubString != -1)
      {
         finSubString=cookie.indexOf(";",i);
         if (finSubString !=-1) datosCookie[j]=cookie.substring(i,finSubString);
         i=finSubString+1;
         j++;
      }
      return true;
   }
   else return false;
}

Ús de la funció:

   document.write(obtenDatosCookie());
   for (i=0;i<datosCookie.length;i++) document.write("<br>"+datosCookie[i]);

Es clar que si volem treballar amb cookies els nostres scripts hauran de fer les accions següents:

  1. Fer ús de la funció obtenDatosCookie.
  2. Si aquesta funció torna true haurem de fer les accions corresponents al fet que la cookie ja existia en el ordinador i per tant l'usuari no és la primera vegada que carrega aquest document.
  3. Si la funció obtenDatosCookie torna false llavors haurem de fer les accions corresponents al fet que no hi ha una cookie per a aquest document i per tant podem suposar que l'usuari accedeix per primera vegada a aquesta pàgina.

    Aquesta afirmació serà certa només si l'usuari no ha esborrat la cookie del seu ordinador.

 

5.2 Els fitxers js

És el mateix concepte de fitxer de biblioteca de funcions com en altres llenguatges. Els fitxer .h són les biblioteques de funcions del llenguatge C.

Podem agrupar les funcions i variables anteriors en un fitxer que es digui cookies.js.

Per cridar des d'un fitxer HTML aquest fitxer haurem d'escriure en el HEAD una instrucció com

<SCRIPT LANGUAGE="JavaScript" SRC="cookies.js" TYPE='text/javascript'></SCRIPT>

Cal dir que aquesta instrucció pot posar-se en qualsevol lloc del text HTML però hem de recordar que és a partir del lloc on posem aquesta instrucció que podrem cridar les seves funcions i variables.