dilluns, 17 de març del 2014

PHP. Cookies

El protocol HTTP no pot guardar informació, d’una sessió a una altra (stateless) ja que cada vegada inicia una connexió nova i per tant no es capaç de mantenir informació persistent entre diferents peticions. 
Els navegadors poden guardar, a petició del servidor WEB una petita quantitat d’informació a l’ordinador del client

D’aquesta manera, el servidor WEB pot tornar a recuperar aquesta informació més endavant.
Gràcies a les cookies es pot compartir informació entre diferents pàgines d'un lloc web o fins i tot, dins la mateixa pàgina web però en diferents moments.
Una cookie o galeta s'utiltiza sovint per identificar un usuari

Una galeta és un petit arxiu que el servidor s'incrusta en l'ordinador de l'usuari. Cada vegada que el mateix equip sol · licita una pàgina amb un navegador, s'enviarà la galeta també. 
Amb PHP, es pot crear i recuperar els valors de galeta.

Contingut d'una cookie

  • nom de la cookie
  • valor de la cookie
  • temps qué en el navegador estarà "viva" (temps de expiració)
  • dominio en el que es vigent la cookie
  • ruta relativa al dominio vigent per a qué es pogui usar la cookie ( / )
  • Si es usa un canal segur para transmetre la cookie (https)

Per crear una cookie usem la funció setcookie():


setcookie("nom","valor","caducitat","/");

L'aplicació de la funció setcookie() s'ha de dur a terme obligatòriament abans de qualsevol altra instrucció, fins i tot <html>.

Les cookies creades constitueixen un vector associatiu, dins el qual són identificades pel nom, que en permet la recuperació. Per exemple:

$_COOKIE['nom'] 

També es pot usar el vector associatiu $_REQUEST, que conté la unió dels vectors $_COOKIE, $_POST, $_GET.

El paràmetre "/" indica que la cookie serà disponible en tot el domini; si s'especifica "/foo", només serà disponible en el propi directori.
El valor de la caducitat sol indicar-se com a suma del moment actual, time(), i del termini de validesa, expressat en segons. Així, per a fixar la caducitat en un any, serà time()+60*60*24*365 

Si no s'hi fixa caducitat, o si s'hi fixa el valor 0, la cookie caduca al final de la sessió.

Per suprimir una cookie cal sobreescrire-la amb una data de caducitat anterior al moment present, generalment es fa amb l'expressió
time()-1000 

Exemple d'ús de cookies:

<?php
  if(isset($_COOKIE['comptador']))
  { 
    // Caduca en un año 
    setcookie('comptador', $_COOKIE['comptador'] + 1, time() + 365 * 24 * 60 * 60); 
    $missatge = 'Visites: ' . $_COOKIE['comptador']; 
  } 
  else 
  { 
    // Caduca en un año 
    setcookie('comptador', 1, time() + 365 * 24 * 60 * 60); 
    $missatge = 'Benvingut a la nostra pàgina web'; 
  } 
?> 
<?xml version="1.0" encoding="iso-8859-1"?> 
<html lang="es"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 
<title>Exercici de cookies</title> 
</head> 
<body> 
<p> 
<?php echo $missatge; ?> 
</p> 
</body> 

</html>
 

Cap comentari:

Publica un comentari a l'entrada