Cómo guardar una cookie

Desde un controlador se pueden leer cookies usando el objeto Request y guardar o borrar cookies usando el objeto Response.

Leer una cookie

$valor = $this->request()->cookie('nombre_cookie');

También se puede indicar un valor por defecto si la cookie no existe:

$valor = $this->request()->cookie('nombre_cookie', 'valor_por_defecto');

El método devuelve el valor de la cookie como string o null si no existe y no se ha indicado valor por defecto.

Guardar una cookie

$this->response()->cookie('nombre_cookie', 'valor');

Por defecto, FacturaScripts usa el tiempo de expiración configurado en cookies_expire.

Si queremos indicar una fecha de expiración concreta, debemos pasar un timestamp:

$expire = time() + 3600; // 1 hora
$this->response()->cookie('nombre_cookie', 'valor', $expire);

La firma del método es:

$this->response()->cookie(
      string $name,
      ?string $value,
      int $expire = 0,
      bool $httpOnly = true,
      ?bool $secure = null,
      string $sameSite = 'Lax'
);

Parámetros principales:

  • $name: nombre de la cookie.
  • $value: valor de la cookie.
  • $expire: timestamp de expiración. Si es 0, se usa la configuración cookies_expire.
  • $httpOnly: si es true, la cookie no será accesible desde JavaScript.
  • $secure: si es null, se detecta automáticamente si la petición usa HTTPS.
  • $sameSite: política SameSite. Por defecto es Lax.

Borrar una cookie

$this->response()->withoutCookie('nombre_cookie');

Ejemplo completo

protected function execPreviousAction($action)
{
      // leer cookie
      $modo = $this->request()->cookie('mi_modo', 'normal');

      // guardar cookie
      if ($action === 'cambiar-modo') {
          $nuevoModo = $this->request()->input('modo', 'normal');
          $this->response()->cookie('mi_modo', $nuevoModo);
      }

      // borrar cookie
      if ($action === 'borrar-modo') {
          $this->response()->withoutCookie('mi_modo');
      }

      return parent::execPreviousAction($action);
}
Cookies
Usamos cookies en nuestro sitio web para brindarte la experiencia más relevante recordando tus preferencias y visitas repetidas. Al hacer clic en "Aceptar", aceptas el uso de TODAS las cookies necesarias.
Copyright (c) 2013-2026 FacturaScripts
0.2285s

Soporte