Trabajando con Cookies en PHP: Creación y Configuración Avanzada

Clase 4 de 22Curso de PHP: Cookies, Sesiones y Modularización

Resumen

¿Cómo trabajar con cookies en PHP?

Las cookies son una herramienta esencial en el desarrollo web para almacenar pequeños fragmentos de datos que permiten la personalización y la mejora de la experiencia del usuario. Comprender cómo manipularlas y configurar sus parámetros adecuadamente es fundamental para cualquier desarrollador web interesado en crear aplicaciones robustas y seguras.

¿Cómo se define una cookie?

Para definir una cookie en PHP, utilizamos la función setcookie(), que permite establecer varios parámetros esenciales. Comencemos con un ejemplo básico para crear una cookie en PHP:

<?php
setcookie(
    'example-cookie', // nombre de la cookie
    'un michi salvaje', // valor de la cookie
    time() + (60 * 60 * 24), // expire en un día
    '/', // path
    'localhost', // dominio
    false, // secure (SSL)
    true // HTTP only
);

¿Qué parámetros podemos configurar en una cookie?

  1. Nombre y Valor: Son los aspectos más fundamentales. El nombre identifica la cookie y el valor almacena la información que queremos guardar.

  2. Expires: Define el tiempo de expiración de la cookie. Si se establece en cero, la cookie se eliminará cuando se cierre el navegador. Podemos calcular el tiempo de expiración en unidades de segundos usando una marca de tiempo UNIX a través de la función time():

    • En 1 minuto: time() + 60
    • En 1 hora: time() + (60 * 60)
    • En 1 día: time() + (60 * 60 * 24)
  3. Path: Especifica la ruta en la que la cookie es disponible. Si configuramos el path como '/', la cookie estará disponible en todo el dominio. Por ejemplo, si definimos '/configuración', la cookie solo estará accesible en esa ruta y en las que le siguen jerárquicamente.

  4. Domain: Determina el dominio en el que la cookie es válida. Puede restringirse a subdominios específicos como cookie.platzi.com.

  5. Secure: Si está configurado en true, la cookie solo será enviada a través de conexiones HTTPS, garantizando así su seguridad. Debe quedar en false al trabajar en localhost ya que usualmente no cuenta con un certificado SSL.

  6. HTTP Only: Determina si la cookie está accesible a través de lenguajes del lado del cliente como JavaScript. Al ponerlo en true, solo estará disponible del lado del servidor, añadiendo una capa adicional de seguridad.

¿Cómo afectan las rutas (path) y dominios a la disponibilidad de las cookies?

Un punto crucial al trabajar con cookies es entender cómo las rutas y los dominios afectan su disponibilidad. Si una cookie está definida para un específico path, solo estará accesible en esa ruta y en las subrutas que hereden el prefijo de esa ruta.

Ejemplo:

  • Definimos una cookie con path como '/configuración':
    • Disponible en '/configuración' y '/configuración/admin'
    • No disponible en '/otra-ruta'

Esto nos permite un control granular sobre dónde las cookies pueden ser utilizadas dentro de nuestra aplicación.

Recomendaciones para trabajar con cookies

  • Seguridad: Siempre considera la configuración secure y HTTP only para proteger la información.
  • Optimización: No almacenes grandes cantidades de datos, ya que las cookies tienen un tamaño limitado.
  • Expiración: Define adecuadamente la expiración para garantizar la validez de la información que contiene.

Convirtiéndote en un experto en el manejo de cookies, puedes mejorar significativamente la seguridad y la operación de tus aplicaciones web. ¡Sigue explorando, y nunca dejes de aprender sobre las fascinantes capacidades del desarrollo web!