English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutorial PHP Básico

Tutorial PHP Avanzado

PHP & MySQL

Manual de Referencia PHP

Cookies de PHP

En este tutorial, aprenderá cómo usar el cookie de PHP para almacenar una pequeña cantidad de información dentro del navegador del usuario.

¿Qué es un Cookie

Un cookie es un pequeño archivo de texto que le permite almacenar una cantidad pequeña de datos en la computadora del usuario (máximo4KB aproximadamente). Generalmente se utilizan para rastrear información como el nombre de usuario, cuando el usuario visita el sitio web la próxima vez, el sitio web puede recuperar esta información para mostrar páginas personalizadas específicas.

Consejo:Cada vez que el navegador solicite una página al servidor, todos los datos del cookie se enviarán automáticamente al servidor dentro de la solicitud.

Configuración de Cookie

La función setcookie() se utiliza para configurar cookies en PHP. Asegúrese de llamar a la función setcookie() antes de cualquier salida generada por el script, de lo contrario no se configurará el cookie. La sintaxis básica de la función se puede dar de la siguiente manera:

setcookie(name, value, expire, path, domain, secure);

Los parámetros de la función setcookie() tienen el siguiente significado:

ParámetrosDescripción
nameEl nombre del cookie.
valueEl valor del cookie. Dado que este valor se almacena en la computadora del usuario, no almacene información sensible.
expiresFecha de expiración en formato de marca de tiempo UNIX. Después de esta fecha, el cookie no será accesible. El valor predeterminado es 0
pathEspecificar la ruta en el servidor donde el cookie estará disponible. Si se configura como/,en ese caso, el cookie estará disponible en todo el dominio.
domainEspecificar el dominio disponible para el cookie, por ejemplo: es.oldtoolbag.com.
secureEste campo (si existe) indica que el cookie solo se enviará cuando exista una conexión segura HTTPS.

Consejo:Si se establece el tiempo de expiración del cookie en 0 o se omite, el cookie expirará al final de la sesión, es decir, cuando se cierre el navegador.

A continuación, se muestra un ejemplo de cómo crear un cookie llamado userName utilizando la función setcookie() y asignarle el valor John Carter. Al mismo tiempo, se especifica el tiempo de expiración del cookie.30 días (}}30 días * 24 horas * 60 min * 60 seg).       

<?php
//Establecer Cookie
setcookie("username", "John Carter", time())+30*24*60*60);
?>

Nota:Todos los parámetros, excepto el nombre, son opcionales. También puede usar una cadena vacía ("") para reemplazar un parámetro para omitirlo, pero para omitir el parámetro expire, utilice cero (0) porque es un entero.

Advertencia:No almacene datos sensibles en los Cookie, ya que los usuarios malintencionados podrían manipular estos datos. Para almacenar datos sensibles de manera segura, utiliceSesión.

Acceder a valor de Cookie

La variable superglobal PHP $_COOKIE se utiliza para recuperar valores de cookie. Normalmente es un array asociativo que contiene una lista de todos los valores de cookie enviados por el navegador en la solicitud actual, con el nombre del cookie como clave. Puede acceder a un solo valor de cookie utilizando la notación de array estándar, por ejemplo, para mostrar el cookie de nombre de usuario configurado en el ejemplo anterior, puede usar el siguiente código.

<?php
//Acceder a un solo valor de Cookie
echo $_COOKIE["username"];
?>

El código PHP del ejemplo anterior produce la siguiente salida.

John Carter

Es mejor verificar si se ha configurado el cookie antes de acceder a su valor. Para esto, puede usar la función PHP isset() como se muestra a continuación:

<?php
//Verificar si se ha configurado el cookie
if (isset($_COOKIE["username"])) {
    echo "Hola " . $_COOKIE["username"];
} else {
    echo "Bienvenido, invitado!";
}
?>

Puede ver la estructura del array asociativo $_cookie utilizando la función print_r($_cookie); de la misma manera que maneja otros arrays.

Eliminar Cookie

Puede eliminar el cookie llamando a la función setcookie() con el nombre del cookie y cualquier valor (por ejemplo, una cadena vacía), pero debe establecer la fecha de expiración en una fecha anterior a la actual, como se muestra en el siguiente ejemplo:

<?php
//Eliminar cookie
setcookie("username", "", time())-3600);
?>

Consejo:Usted debe pasar el nombre que usó al crear el Cookie por primera vez, incluyendo la ruta, el dominio y otros parámetros para asegurar que se elimine el Cookie correcto.