Temas > Programacion > Php > Creacion y lectura de una cookie en php
Julio

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.
Quien hace 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:
<?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 ($_POST[`radio`]=="rojo")
  setcookie("color","#ff0000",time()+60*60*24*365,"/");
elseif ($_POST[`radio`]=="verde")
  setcookie("color","#00ff00",time()+60*60*24*365,"/");
elseif ($_POST[`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 segundosy
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 servid













¿Has olviado tu contraseña?

Pulsa aquí para registrate




Google






LunMarMieJueVieSabDom
    123
45678910
11121314151617
181920 21222324
252627282930 

Jueves 21 de Noviembre 2024
Semana 47

..............................................................................................................................................................................................................................................
(Contacto)..
Esta web utiliza cookies para obtener datos estadísticos de la navegación de sus usuarios. Política de privacidad y Aviso legal