Búsqueda personalizada
 
 
 
 
Creación y lectura de una cookie
   

El protocolo HTTP es desconectado. Esto significa que cada vez que solicitamos una página a un servidor representa una conexión distinta.
Una cookie es una pequeña cantidad de datos almacenada por el navegador del usuario cuando solicita una página a un servidor.

El que envía que se genere la cookie es el servidor.

Una cookie consta de un nombre, un valor, una fecha de expiración y un servidor. Una cookie está limitada a 4KB.

Luego que una cookie es creada sólo el sitio que la creó puede leerla. Luego de creada una cookie, cada vez que el navegador del usuario visita el sitio, se envía dicha cookie.

Otra cosa importante que hay que tener en cuenta es que el usuario del browser puede configurar el mismo para no permitir la creación de cookies, lo que significa que el uso de cookies debe hacerse con moderación y cuando la situación lo requiera.

De todos modos, el 95% de los navegadores están configurados para permitir la creación de cookies.
Para la creación de una cookie desde PHP debemos llamar a la función setcookie.

 

Los par�metros de esta funci�n son:

     setcookie( <nombre de la cookie>, 
                 <valor de la cookie>, 
                 <fecha de expiración>, 
                 <carpeta del servidor>) 

Con un problema sencillo entenderemos el uso de esta funci�n. Supongamos que queremos que los usuarios que entran a nuestro sitio puedan configurar con qu� color de fondo de p�gina quiere que aparezca cada vez que ingresa al sitio. Al color seleccionado por el visitante lo almacenaremos en una cookie. En caso que no exista el color, por defecto es blanco. La primera p�gina mostrar� un formulario con tres controles de tipo radio para la selecci�n del color.

Tambi�n esta p�gina verificar� si existe la cookie creada, en caso afirmativo fijar� el fondo de la p�gina con el valor de la cookie. Tengamos en cuenta que la primera vez que ejecutemos este programa la p�gina es de color blanco, luego variar� seg�n el color seleccionado en el formulario. El c�digo de la primera p�gina es:

<html>
<head>
<title>Problema</title>
</head>
<body 
<?php if (isset($_COOKIE['color'])) echo " bgcolor=\"$_COOKIE[color]\"" 
?>
>
<form action="pagina2.php" method="post">
Seleccione de que color desea que sea la página de ahora en más:<br>
<input type="radio" value="rojo" name="radio">Rojo<br>
<input type="radio" value="verde" name="radio">Verde<br>
<input type="radio" value="azul" name="radio">Azul<br>
<input type="submit" value="Crear cookie">
</form>
</body>
</html>

El formulario no var�a en nada respecto a otros vistos. Lo m�s importante es el bloque PHP que verifica si ya existe la cookie en el navegador del cliente. Es importante entender que la primera vez que ejecutemos esta p�gina la cookie no existe, por lo que el if se verifica falso:

<body 
<?php if (isset($_COOKIE['color'])) echo " bgcolor=\"$_COOKIE[color]\"" 
?>
>

El vector asociativo $_COOKIE almacena todas las cookies creadas por el visitante. Si es la primera vez que peticionamos esta p�gina, el vector $_COOKIE no tendr� elementos.
Es decir que la marca body no tiene inicializada la propiedad bgcolor.

La segunda p�gina es la que crea la cookie propiamente dicha:

<?php
if ($_REQUEST['radio']=="rojo")
  setcookie("color","#ff0000",time()+60*60*24*365,"/");
elseif ($_REQUEST['radio']=="verde")
  setcookie("color","#00ff00",time()+60*60*24*365,"/");
elseif ($_REQUEST['radio']=="azul")
  setcookie("color","#0000ff",time()+60*60*24*365,"/");
?>
<html>
<head>
<title>Problema</title>
</head>
<body>
Se creó la cookie.
<br>
<a href="pagina1.php">Ir a la otra página</a>
</body>
</html>

La llamada a la funci�n setcookie debe hacerse antes de imprimir cualquier marca HTML, de lo contrario no funcionar�.
Como podemos observar, la creaci�n de la cookie se hace llamando a la funci�n setcookie:

<?php
if ($_REQUEST['radio']=="rojo")
  setcookie("color","#ff0000",time()+60*60*24*365,"/");
elseif ($_REQUEST['radio']=="verde")
  setcookie("color","#00ff00",time()+60*60*24*365,"/");
elseif ($_REQUEST['radio']=="azul")
  setcookie("color","#0000ff",time()+60*60*24*365,"/");
?>

El nombre de la cookie se llama "color" y el valor que almacenamos depende de qu� control de tipo radio est� seleccionado en la p�gina anterior. La fecha de expiraci�n de la cookie la calculamos f�cilmente llamando a la funci�n time() que nos retorna la fecha actual en segundos y le sumamos el producto 60*60*24*365 (60 segundos * 60 minutos * 24 horas * 365 d�as) es decir que la cookie existir� en la m�quina del visitante hasta el a�o pr�ximo.
Cuando indicamos como directorio la sintaxis "/" significa que la cookie se crea a nivel del sitio y con cuaquier petici�n a dicho sitio, el navegador enviar� la cookie al servidor.
Por �ltimo dispusimos en esta p�gina un hiperv�nculo a la p�gina anterior, para ver que, de ahora en m�s, cada vez que ejecutemos la pagina1.php, el color de fondo de la misma depender� del valor de la cookie registrada.

 
 
       
       

¿Quienes somos?

Condiciones de uso

Publicidad

Privacidad de la informacion