Utilización de las cookies en PHP

Aprendemos sobre las cookies en PHP. Explicamos en qué consisten estas célebres galletas y describimos su empleo y utilidad.

Sin duda este término resultara familiar para muchos. Algunos lo habrán leído u oído pero no saben de qué se trata. Otros sin embargo sabrán que las cookies son unas informaciones almacenadas por un sitio web en el disco duro del usuario. Esta información es almacenada en un archivo tipo texto que se guarda cuando el navegador accede al sitio web.

Referencia:Una explicación de las cookies más detallada se puede encontrar en el artículo Qué son las cookies, publicado en DesarrolloWeb.com.

Es posible, por supuesto, ver estos archivos. Para abrirlos hay que ir al directorio C:WindowsCookies para los usuarios de IE 4+ o a C:...NetscapeUsersdefaultuser para usuarios de Netscape. Como podréis comprobar, en la mayoría de los casos la información que se puede obtener es indescifrable.

La utilidad principal de las cookies es la de poder identificar al navegador una vez éste visita el sitio por segunda vez y así, en función del perfil del cliente dado en su primera visita, el sitio puede adaptarse dinámicamente a sus preferencias (lengua utilizada, colores de pantalla, formularios rellenados total o parcialmente, redirección a determinadas páginas...).

Para crear cookies con PHP, modificar o generar una nueva cookie lo podemos hacer a partir de la función SetCookie:

setcookie("nombre_de_la_cookie",valor,expiracion);

Pongamos un ejemplo sencillo. Imaginemos que queremos introducir en una variable cookie el nombre del visitante. El nombre ha podido ser previamente recogido por un formulario tal y como hemos visto:

setcookie("persona",$nombre,time()+86400*365);

De este modo hemos creado una cookie php llamada persona que tiene como valor el contenido de la variable $nombre y tendrá una duración de 1 año a partir de su creación (el tiempo time() actual en segundos sumado a un año en segundos).

Es importante que la creación de la cookie sea previa a la apertura del documento HTML. En otras palabras, las llamadas a la función setcookie() deben ser colocadas antes de la etiqueta HTML.

Por otra parte, es interesante señalar que el hecho de que definir una cookie ya existente implica el borrado de la antigua. Del mismo modo, el crear una primera cookie conlleva la generación automática del archivo texto.

Para utilizar el valor de la cookie en nuestros scripts tan sólo tendremos que llamar la variable que define la cookie. ¡Realmente sencillo!

Hay que tener cuidado sin embargo de no definir variables en nuestro script con el mismo nombre que las cookies puesto que PHP privilegiará el contenido de la variable local con respecto a la cookie y no dará un mensaje de error. Esto nos puede conducir a errores realmente difíciles de detectar.

Recordamos que es posible recopilar en una variable tipo array el conjunto de cookies almacenadas en el disco duro del internauta mediante la variable de servidor $HTTP_COOKIE_VARS

Las cookies son una herramienta fantástica para personalizar nuestra página pero hay que ser cautos ya que, por una parte, no todos los navegadores las aceptan y por otra, se puede deliberadamente impedir al navegador la creación de cookies. Es por ello que resultan un complemento y no una fuente de variables infalible para nuestro sitio. Como has podido ver, las Cookies son muy sencillas de utilizar en PHP.

Puedes profundizar más en la creación de cookies en el siguiente articulo: Cookies en PHP. Además, también te recomendamos ver el Videotutorial sobre las Cookies en PHP.

Autor

Rubén Alvarez

Rubén es doctor en química y programador aficionado con experiencia en PHP.

Compartir

Comentarios

Patricio Villarroel

03/8/2003
Me causó un dolor de cabeza usar $HTTP_COOKIES_VARS. Porque tal variable no existe, sino que es $HTTP_COOKIE_VARS. Cuando usé la última, se me fue el dolor de cabeza.

Solucionado, gracias

Rafa Muñoz

19/7/2004
Con respecto al comentario anterior, viendo que esa variable se está quedando obsoleta, propongo que se recojan los valores de la variable de la cookie a través de $_COOKIE['nombre_de_la_cookie'], que es un método más seguro y más fácil de recordar. Enhorabuena, la caña de manual ,)

Anónimo

08/4/2009
QUE LIO
Yo he hecho un cookie y no me va.
Lo puse en código htlm y no me funciona quizá lo tendre que poner en php

En definitiva: los códigos htlm y php son un lío y además está en inglés pero;que le vamos a hacer si las páginas web se utilizan ese código.

mary

04/8/2009
creacion de cokkies
hola necesito ayuda tengo un combobox en una pagina php que tiene 2 opciones es para cambiar los estilos de la pagina pero como le puedo hacer para que el estilo que yo elija en el combo tambien lo cambie en otras paginas, yasea con una cookie o con una variable de session

pablo

15/3/2011
apache Vs PHP
la 1ª es una vable de entorno de apache y la 2ª una variable PHP.
Creo recordar que es asi, si estoy equivocado espero que me corrijan

alex

12/9/2013
Felicitaciones
Saludos, excelente material que me ha servido para refrescar algunos conocimientos anteriores que se encontraban oxidados en mi memoria.

alex henderson

18/9/2016
muchas gracias
grracias me fue de mucha utilidad en mi pagina web http://creative-neko.com