Enrere
Mòdul 3
Creació i gestió d'entorns web dinàmics (PHP)
  Pràctica
1
2
3
4
   
Exercicis
Exercicis
 
 
   
  Galetes o cookies
   
 

En aquesta pràctica veurem:

  • El funcionament de les galetes o cookies.
   
  Què són les galetes
   
 

Una galeta o cookie és un fitxer de text de mida limitada que permet emmagatzemar localment informacions diverses. Pròpiament, aquest fitxer pot contenir diversos cookies. La finalitat d'aquest fitxers és la de poder desar-hi informacions d'un visitant, deixant-la en el seu ordinador, per poder-les recuperar i utilitzar en futures visites (si ja s'ha visitat la pàgina o no, data i hora de l'última visita, etc.). Cal dir que tots els cookies d'un mateix web es desen seqüencialment en un mateix fitxer de text.

Insistim que els cookies es desen a l'ordinador client. Depenent del sistema operatiu i de la seva versió i depenent també del navegador, els trobareu en un lloc o altre. En el Windows XP, per exemple, podeu trobar els cookies generats per l'Internet Explorer a C:\Documents and Settings\NOMUSUARI\Cookies. En el cas del Netscape 7.0 (Mozilla), tant per a Windows com per a Linux, podeu anar Editar | Preferencias | Privacidad & seguridad | Cookies | Gestionar cookies almacenados i podreu veure les galetes que hi ha desades.

   
   
  Les galetes del php.net
   
Pràctica

Veurem un exemple pràctic del funcionament de les galetes a partir de la pàgina oficial del PHP.

Primerament, assegureu-vos que teniu activada l'acceptació de cookies en el vostre navegador. En el cas de l'Internet Explorer 6, cliqueu a Herramientas | Opciones de Internet i a la pestanya Privacidad, podeu establir una privacitat mitjana, tal com mostra la imatge següent:

Figura 3.3.1: Configuració de les galetes en el navegador IExplorer.

En el cas del Netscape 7 (Mozilla) podeu anar a Editar | Preferencias | Privacidad & seguridad | Cookies on veureu les diferents opcions de configuració dels cookies. Podeu deixar-hi les que hi ha per defecte.

Figura 3.3.2. Configuració de les galetes en el navegador Netscape 7

 

Si treballeu amb Mozilla FireFox (0.9) podeu anar a Eines | Opcions | Privadesa | Galetes per trobar les opcions referides a les galetes, que podem deixar, per fer les pràctiques, de la manera que veieu a la figura 3.3.3

Figura 3.3.3. Configuració de les galetes en el navegador Firefox

Un cop acceptat, accediu a aquesta pàgina, a l'adreça http://www.php.net i a la casella search for de la part superior dreta, entreu-hi qualsevol nom de funció, per exemple, phpinfo. D'aquesta manera, arribareu a la pàgina d'informació sobre aquesta funció.

Ara podeu tancar el vostre navegador i seguidament tornar-lo a obrir anant de nou a la mateixa adreça. Fixeu-vos que, sense escriure res, a la casella search for torna a aparèixer el darrer contingut de la casella, en aquest cas, phpinfo.

Si heu utilitzat Internet Explorer, aquesta i d'altres informacions s'han desat en el vostre ordinador en un fitxer de cookies que podeu trobar al directori de cookies, on veureu un fitxer que té per nom nom_d'usuari@php[1]. Si l'obriu, veureu alguna cosa semblant al que segueix (òbviament, sense algun comentari que hi hem afegit):

   
  COUNTRY //informacions sobre el país
ESP%2C88.88.456.237 // la vostra adreça IP (l'hem disfressada)
php.net/
1536
2167907200
29574300
3992972672
29572893
*
LAST_SEARCH // darrera cerca que hem fet
quickref%2Cphpinfo
php.net/
1536
2798038016
29574304
1965570784
29572896
*
MYPHPNET
es
php.net/
1536
1251189120
29639530
1089910624
29566106
*
LAST_LANG // idioma amb què ens tornarà la informació
es
php.net/
1536
4168281984
29646321
1988850784
29572896
*
  Llistat 3.3.1. Galetes del php.net
   
 

Si, en canvi, heu utilitzat el Netscape 7.0, podeu anar de nou a Editar | Preferencias | Privacidad & seguridad | Cookies prémer sobre el botó

i apareixerà un quadre semblant al que podeu veure a la figura 3.3.4

 

Figura 3.3.4 Visualizació de les galetes emmagatzemades pel Netscape 7

   
  Fixeu-vos que aquí cada galeta està desglossada (LAST_SEARCH, LAST_LANG...).
   
 

En el FireFox, de manera semblant al Netscape, podeu anar a Eines | Opcions | Privadesa | Galetes i clicar sobre el botó

i apareixerà un quadre com el de la següent imatge, en què les galetes també estan desglossades:

 

Figura 3.3.5. Visualització de les galetes emmagatzemades pel navegador Firefox.

   
 

En entrar de nou a la pàgina, es llegeixen aquestes cookies i el valor quickref es mostra a la casella de cerca.

A continuació, veurem com creem les nostres pròpies galetes.

   
   
  Crear galetes o cookies
   
Pràctica
Copieu el codi següent a l'editor, deseu-lo amb el nom m3p32.php al directori arrel del vostre servidor.
   
Veure codi

Executar codi

<?php
/*---------------------------------------------------------------
* Mòdul: 3 Pràctica: 3 Fitxer: m3p32.php
* Autor: D116 Data:
* Descripció: Creació de cookies
* Pre condi.: Cookies activades en el navegador
* Post cond.:
----------------------------------------------------------------*/

$expiracio = 365*24*3600; //data d'expiració
setcookie("nom","jaume",time()+$expiracio);//establim cookie
setcookie("idioma","cat",time()+$expiracio);
setcookie("data",date("d-m-Y"),time()+$expiracio);
setcookie("hora",date("H:i:s"),time()+$expiracio);

echo "\"Cookies\" creades <br>";


echo "Vés al directori on es creen les cookies del teu ordinador i comprova-ho";
?>

  Llistat 3.3.2. Creació de galetes
   
 

Amb aquest codi, creem quatre galetes diferents. Primerament, definim el seu temps de vigència ($expiracio), que establim en un any. Podeu veure que aquest valor cal passar-lo en segons.

Després, definim cada cookie mitjançant la funció setcookie() que recull:

  • nom del cookie
  • valor del cookie
  • temps d'expiració del cookie
   
Atenció !
Les galetes o cookies han de ser enviades abans de qualsevol altra capçalera i, per tant, han d'anar abans de qualsevol etiqueta html o head. Aneu alerta també a no deixar cap espai en blanc.
   
   
  Recuperar cookies
   
Pràctica

Copieu el codi següent a l'editor i deseu-lo amb el nom m3p33.php al directori arrel del vostre servidor.

   
Veure codi

Executar codi

<?php
/*---------------------------------------------------------------
* Mòdul: 3 Pràctica: 3 Fitxer: m3p33.php
* Autor: D116 Data:
* Descripció: Recuperació de 'cookies'
* Pre condi.: Cal haver creat abans les cookies
* Post cond.:
----------------------------------------------------------------*/

// Recuperem nom d'usuari
echo "Bon dia ".$_COOKIE["nom"]." <br><br>";

// Data última connexió
echo "Darrera connexió a 'm3p32.php': ".$_COOKIE["data"]." <br>";

// Hora darrera connexió
echo "a les ".$_COOKIE["hora"]." hores <br><br>";

// Idioma predeterminat
echo "Idioma predeterminat: ".$_COOKIE["idioma"]."<br><br>";
?>

  Llistat 3.3.3. Recuperació de galetes
   
 

Per recuperar els valors desats en els cookies, simplement hem d'utilitzar un array que ens ofereix el PHP per a fer-ho. Es tracta de l'array associatiu $_COOKIE["nom_cookie"].

   
 
   
Amunt
Pràctica
1
2
3
   
Exercicis
Exercicis