Saltar al contenido

Función setrawcookie() de PHP: Todo lo que necesitas saber

Como desarrollador de PHP, es posible que necesites establecer cookies sin procesar para tu aplicación web con el fin de almacenar información en el lado del cliente. La función setrawcookie() es una función integrada de PHP que te permite establecer una cookie sin procesar. A diferencia de la función estándar setcookie(), setrawcookie() no codifica en URL el valor de la cookie, lo que la hace útil cuando necesitas almacenar datos previamente codificados o cadenas binarias. En este artículo, analizaremos en profundidad la función setrawcookie() y su uso.

¿Qué es la función setrawcookie()?

La función setrawcookie() es una función integrada de PHP (disponible desde PHP 5.2.0) que te permite establecer una cookie sin procesar en el lado del cliente. Devuelve true en caso de éxito y false en caso de error.

Cómo usar la función setrawcookie()

El uso de la función setrawcookie() es sencillo. A continuación se muestra la sintaxis:

Sintaxis de PHP

php
setrawcookie($name, $value, $expire, $path, $domain, $secure, $httponly);

La función acepta siete parámetros:

  • $name: El nombre de la cookie.
  • $value: El valor sin procesar de la cookie (no codificado en URL).
  • $expire: El tiempo de expiración como marca de tiempo Unix.
  • $path: La ruta del servidor donde estará disponible la cookie.
  • $domain: El dominio donde estará disponible la cookie.
  • $secure: Indica si la cookie solo debe transmitirse a través de HTTPS.
  • $httponly: Indica si la cookie no debe ser accesible para JavaScript del lado del cliente.

A continuación se muestra un ejemplo de cómo usar la función setrawcookie() para establecer una cookie sin procesar:

Ejemplo

php
<?php

$name = "username";
$value = "john";
$expire = time() + (86400 * 30); // 30 días
$path = "/";
$domain = ".example.com";
$secure = true;
$httponly = true;
setrawcookie($name, $value, $expire, $path, $domain, $secure, $httponly);

En este ejemplo, usamos la función setrawcookie() para establecer una cookie sin procesar llamada username con el valor john. Especificamos el tiempo de expiración como 30 días a partir del momento actual, la ruta del servidor como / y el dominio como .example.com. Las banderas secure y httponly se establecen en true para garantizar que la cookie solo se transmita a través de HTTPS y no sea accesible para JavaScript del lado del cliente.

setrawcookie() vs setcookie()

La principal diferencia entre setrawcookie() y setcookie() radica en cómo manejan el valor de la cookie. setcookie() codifica automáticamente el valor en URL utilizando rawurlencode(), lo cual es seguro para texto estándar, pero puede causar problemas si necesitas almacenar datos previamente codificados o cadenas binarias. setrawcookie() omite este paso de codificación, lo que te da un control total sobre el valor sin procesar. Para la mayoría de los casos de uso estándar, se prefiere setcookie(), pero setrawcookie() es esencial cuando se trabaja con datos ya codificados.

Conclusión

La función setrawcookie() es una herramienta útil para establecer cookies sin procesar en tu aplicación web de PHP. Al comprender su sintaxis, parámetros y cómo difiere de setcookie(), puedes almacenar de forma segura datos previamente codificados en el lado del cliente.

Práctica

¿Cuál es el uso correcto de la función setrawcookie() en PHP?

¿Te resulta útil?

Vista previa dual-run — compárala con las rutas Symfony en producción.