English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
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.
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.
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ámetros | Descripción |
---|---|
name | El nombre del cookie. |
value | El valor del cookie. Dado que este valor se almacena en la computadora del usuario, no almacene información sensible. |
expires | Fecha 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 |
path | Especificar 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. |
domain | Especificar el dominio disponible para el cookie, por ejemplo: es.oldtoolbag.com. |
secure | Este 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.
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.
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.