Cookies en PHP

Valoración del artículo:
Explicaciones completas sobre cookies en PHP, con todos los parámetros de la función setcookie() y el array $_COOKIE
Publicado: 19/12/07
Atención: Contenido exclusivo de DesarrolloWeb.com. No reproducir. Copyright.
Las cookies en PHP son muy fáciles de utilizar. Ya empezamos a explicar algunas claves interesantes en el artículo utilización de cookies en el manual de PHP. Ahora vamos a mostrar otros detalles que conviene saber para trabajar con las cookies, sobretodo en lo que respecta a su creación.

Crear cookies en PHP

En PHP las cookies se controlan por medio de una función, que nos sirve para generarlas y guardarlas en el navegador del usuario. Es la función setcookies(), que recibe varios parámetros, entre ellos, el nombre de la cookie, el valor y la caducidad. El único parámetro obligatorio es el primero, el nombre de la cookie, los demás son opcionales.

Veamos la lista entera de parámetros de setcookie() con sus explicaciones:

Nombre

Un string con el nombre que queremos darle a la cookie a guardar. Puede ser cualquiera que deseemos.

Valor

Una cadena de caracteres que es el valor que va a tener la cookie.

Caducidad

Es un timestamp con el valor de la fecha en la que caducará la cookie. Lo normal es utilizar la función time(), que genera el timestamp actual y sumarle el número de segundos que quedamos que dure la cookie. Por ejemplo, time() + (60 * 60 * 24 * 365) haría que la cookie durase un año en el sistema del usuario.

Ruta

El camino o ruta donde la cookie se podrá utilizar dentro del dominio. Por defecto, la cookie se podrá utilizar en el directorio donde se ha creado y sus subdirectorios. Si indicamos "/" la cookie tendrá validez dentro de todo el dominio.

Dominio

Es el subdominio donde se podrá acceder a la cookie. Las cookies sólo se pueden generar y utilizar para el dominio de la página donde está colocado el script, pero podemos hacerlo visible para todos los subdominios del dominio de la web por medio de ".midominio.com".

Seguro

Es un boleano que, si es true, indica que la cookie sólo puede ser transmitida por shttp (http seguro).

Sólo http

Esto es otro boleano que sirve para indicar que la cookie sólo puede ser accedida por medio de las cabeceras del http, lo que la haría inalcanzable para lenguajes de script en el cliente como Javascript. Este parámetro fue añadido en PHP 5.2.0

La function setcookie() de PHP genera y envía la cookie al navegador y devuelve un boleano, si es true indica que se pudo incluir en el navegador del usuario y si es false indica que no ha podido colocarla en el sistema. Pero este valor no indica que luego el visitante la haya aceptado o no, puesto que el navegador puede haberlo configurado para no aceptar cookies y esto no lo puede detectar setcookie() directamente.

Por ejemplo, estas serían diferentes llamadas a setcookie():

setcookie("migalleta", "mivalor");
setcookie("cookie2", "mivalor2", time() + 3600);
setcookie("otracookie", "valorfinal", time() + 3600, "/", ".midominio.com");

Pero atención en un asunto: Para enviar una cookie al navegador se debe hacer antes de haber enviado las cabeceras del http al cliente, es decir, antes de haber escrito cualquier texto en la página. Si no, PHP podrá lanzar un error de headers already sent (cabeceras ya enviadas).

Recuperar cookies con PHP

Por otra parte, para recibir las cookies que el navegador del usuario pueda tener creadas en el sistema se utiliza el array asociativo $_COOKIE. En este array están todas las cookies que tiene disponible la página PHP en el dominio y el directorio donde está colocado.

Por medio del nombre de la cookie accedemos a su valor:

$_COOKIE["migalleta"];
$_COOKIE["cookie2"];

Para ver un ejemplo de uso de cookies PHP acceder al taller de PHP Estilos CSS distintos a una página con PHP y cookies.

Comentarios
Fueron enviados 3 comentarios al artículo
1 comentario no revisado
2 comentarios revisados:
Por: Alberto
25/10/08
Muchas gracias!!! ahora sí que he podido entender las cookies php. Ni que decir tiene que todas las aplicaciones de las cookies están sujetas a la configuración del navegador del usuario. Pero claro que nunca podemos saber si el usuario acepta cookies o no y mejor es utilizarlas, porque no saber si son aceptadas o no, no es razón para no utilizarlas.
Por:
25/10/08
Existe alguna manera de saber si son aceptadas las cookies en el navegador del usuario usando PHP.???


Manuales relacionados
Categorias relacionadas
El autor
Lectura recomendada
Últimas noticias
Alojados en el grupo