¿Tienes una página web y necesitas crear cookies de forma manual para hacer un seguimiento de los usuarios que te visitan? En este artículo te contamos cómo crear cookies en php. Y recuerda, si las vas a usar, debes solicitar el consentimiento explícito de los usuarios ya que de lo contrario estarás incumpliendo el RGPD y la LOPDGDD.

¿Cómo crear/establecer Cookies en PHP?

El lenguaje de programación PHP es uno de los más comunes que existen a la hora de crear páginas web. Y por extensión, también puede ser empleado para crear cookies. Pero, cada lenguaje tiene sus propias normas y la creación o consulta en PHP es distinto, por ejemplo, al uso de cookies en Javascript.

Lo primero que debes saber es que las cookies se han de crear antes del Doctype, ya que han de ser generadas antes de que el navegador procese el código HTML.

Para establecer una cookie en PHP se emplea la función setcookie. Esta función ha de contener dos parámetros básicos: el nombre de la cookie y la función. Por tanto, nos quedaría de esta manera:

  • setcookie(«nombreCookie»,»valorCookie»);

Por otro lado, se pueden añadir muchos otros parámetros opcionales a la cookie, entre los que se encuentran los siguientes:

  • Expire: la duración de la cookie. Si no se asigna, la cookie expirará cuando el usuario cierre el navegador. Si se elige una fecha anterior a la actual, la cookie se eliminará.
    • *Por ejemplo, si quieres que la cookie tenga una duración de 60 segundos: setcookie(«cookie1», «valorcookie1», time()+60,
  • Path: la ruta de la cookie. Es importante saber que, por defecto, las cookies solo se aplican en el directorio de la página donde han sido creadas. Si se quieren usar en un directorio en particular será necesario añadir la ruta.
    • *Por ejemplo, si quieres que todas las páginas del directorio puedan acceder a la cookie: setcookie(«cookie1″,»valorcookie1», «/»);
  • Domain: el subdominio desde el cual se puede acceder a la cookie. En principio, solo se pueden usar en el dominio de la web donde han sido creadas, pero también se pueden aceptar en todos los subdominios agregando como parámetro el nombre del dominio.
    • *Por ejemplo: setcookie(«cookie1», «valorcookie1″,».nombredetuweb.com»);
  • Secure: es un parámetros que sirve para determinar si la cookie se puede transmitir o no por https. Se indica mediante las opciones True o False.
    • *Por ejemplo, si la cookie SÍ se puede transmitir por https: setcookie(«cookie1», «valorcookie1″,».nombredetuweb.com», true);
  • httponly: determina si la cookie estará accesible desde http o también por lenguajes de script. Está en False por defecto.
    • *Por ejemplo, si quieres que la cookie también esté accesible por lenguajes de script: setcookie(«cookie1», «valorcookie1″,».nombredetuweb.com», true, true);

cookies en php

Ejemplo de cookies php

Lo primero para generar cookies con PHP sería crear un formulario mediante el cual se recogería la información para la creación de la cookie. El siguiente paso será crear un script que procesará a información y la almacenará en la cookie correcta.

Pongamos que vamos a crear una cookie con los siguientes parámetros:

  • Nombre: nombre de la cookie
    Valor: campo del formulario
    Expiración: time() + 30*24*60*60 (un mes)

Como puedes ver, el formato de expiración de la cookie tiene un formato muy concreto. En este caso, para conseguir que la cookie tenga una duración de 30 días, debemos asignar la duración separada por días, horas, minutos y segundos (30*24*60*60). De esta forma conseguiremos que el plazo de conservación de la cookie sea de un mes.

Ahora, toca escribir el script que permitirá que la cookie quede configurada correctamente para registrar los datos del formulario:

if(isset($_POST[«enviar»]))
{
$nombre = $_POST[«nombre»];
setcookie(«nombre de la cookie», $nombre, time() + 30*24*60*60);

echo «El valor de la cookie nombre de la cookie es: » . $_COOKIE[«nombre de la cookie»];

¿Cómo eliminar Cookies en PHP?

Para determinar la duración de las cookies en PHP es emplea el parámetro expire. Si queremos eliminar una cookie en PHP, tan solo hay que crear una nueva cookie con el mismo nombre y asignar a la función expire un valor negativo o una fecha ya pasada. No existe otra función concreta para eliminar las cookies.

  • setcookie(«cookie1″,»valorcookie1»,time() – 60);

Para que cookies y sesiones coincidan, simplemente no asignamos el parámetros Expire. De esta manera la cookie se eliminará automáticamente cuando el usuario cierre el navegador.

¿Cómo comprobar si existe una Cookie?

Para comprobar cookies en PHP es utilizar el array $_COOKIE. El código a escribir será el siguiente:

if( isset( $_COOKIE[‘nombre’]) )
{
echo «

La cookie ha sido creada

«;
}
else
{
echo «

Si no existe, la creamos

«;
// Se crea cookie con duración de un minuto
setcookie(«nombre», 1, time() + 60);

echo «
?>

¿Cómo comprobar si están activadas las Cookies?

Para comprobar si las cookies en PHP están activas, empleamos la función comprobarCookies(). Hay que refrescar la web para que se actualice el array $_COOKIE:

cookies_activas_1.php:

setcookie(«nombre», 1, time() + 60 );
header(«Location: 03_cookies_activas_2.php»);

cookies_activas_2.php:

function comprobarCookies()
{
$activas = false;

if( isset($_COOKIE[‘nombre’]) )
$activas = true;

return $activas;
}

if( comprobarCookies() == true )
echo(«Las Cookies están activas»);
else
echo «Las Cookies están desactivadas»;

¿Cómo obtener el valor de una Cookie?

Para obtener el valor de una cookie hay que acceder al valor indicado en el array $_COOKIES, En este ejemplo te mostramos cómo hacerlo:

cookies_activas_1.php:

setcookie(«nombre», «informaticapc.com», time() + 60 );
header(«Location: 04_cookies_leer_2.php»);

cookies_activas_2.php:

if( isset($_COOKIE[‘nombre’]) )
echo «El valor de la Cookie ‘nombre’ es [«.$_COOKIE[‘nombre’].»]»;
else
echo «No existe la Cookie»;

  • *Nota: para comprobar si existe cookies y consultar su valor, recuerda abrir el código siempre con <?php y cerrarlo con ?>

Esperamos que el artículo te haya servido de ayuda. En nuestra web puedes consultar más información relacionada, por ejemplo para saber cómo habilitar las cookies.

Escribe aquí tu comentario

Deja un comentario

Las siguientes reglas del RGPD deben leerse y aceptarse:
Este formulario recopila tu nombre, correo electrónico y contenido para que podamos realizar un seguimiento de los comentarios dejados en la web. Para más información revisa nuestra política de privacidad, donde encontrarás más información sobre dónde, cómo y por qué almacenamos tus datos.