Los últimos tutoriales de desarrollo web
 

PHP setcookie() Function

<PHP HTTP Referencia

Ejemplo

En el siguiente ejemplo se crea una cookie llamada "user" con el valor "John Doe" . La cookie caducará después de 30 días (86400 * 30) . El "/" significa que la cookie está disponible en todo el sitio web (otherwise, select the directory you prefer) .

A continuación, recuperar el valor de la cookie "user" (utilizando la variable global $ _COOKIE). También usamos el isset() la función para averiguar si se ha establecido la cookie:

<!DOCTYPE html>
<?php
$cookie_name = "user";
$cookie_value = "John Doe";
setcookie($cookie_name, $cookie_value, time() + (86400 * 30), "/"); // 86400 = 1 day
?>
<html>
<body>

<?php
if(!isset($_COOKIE[$cookie_name])) {
    echo "Cookie named '" . $cookie_name . "' is not set!";
} else {
    echo "Cookie '" . $cookie_name . "' is set!<br>";
    echo "Value is: " . $_COOKIE[$cookie_name];
}
?>

</body>
</html>
Ejecutar ejemplo »

Definición y Uso

El setcookie() función define una cookie que se enviará junto con el resto de las cabeceras HTTP.

Una cookie se utiliza a menudo para identificar a un usuario. Una cookie es un pequeño archivo que el servidor se incrusta en el ordenador del usuario. Cada vez que el mismo equipo solicita una página con un navegador, se enviará la cookie también. Con PHP, puede tanto crear y recuperar los valores de cookie.

El nombre de la cookie se asigna automáticamente a una variable del mismo nombre. Por ejemplo, si una cookie se envía con el nombre de "user" , una variable es automáticamente creó llamado $ usuario, que contiene el valor de la cookie.

Note: El setcookie() la función debe aparecer antes de la <html> etiqueta.

Note: El valor de la cookie se urlencoded automáticamente cuando se envía la cookie, y se decodifica de forma automática cuando se reciben (para evitar URLEncoding, el uso setrawcookie() en su lugar).

Sintaxis

setcookie( name,value,expire,path,domain,secure,httponly );

Parámetro Descripción
name Necesario. Especifica el nombre de la cookie
value Opcional. Especifica el valor de la cookie
expire Opcional. Especifica cuando la cookie caduca. El valor: time() + 86400 * 30, establecerá la cookie expira en 30 días. Si se omite o se establece en 0 este parámetro, la cookie expirará al final de la sesión (when the browser closes) . Por defecto es 0
path Opcional. Especifica la ruta del servidor de la cookie. Si se establece en "/" , la cookie estará disponible dentro de todo el dominio. Si se establece en "/php/" , la cookie sólo estará disponible dentro del directorio php y todos los subdirectorios de php. El valor predeterminado es el directorio actual que la cookie se establece en
domain Opcional. Especifica el nombre de dominio de la cookie. Para hacer la cookie disponibles en todos los subdominios de example.com, domain establecida en el "example.com" . Si se establece en www.example.com hará que la cookie sólo está disponible en el subdominio www
secure Opcional. Especifica si la cookie sólo debe ser transmitida a través de una conexión segura HTTPS. TRUE indica que la cookie sólo se establece si existe una conexión segura. Por defecto es FALSO
httponly Opcional. Si se establece en TRUE la cookie sólo será accesible a través del protocolo HTTP (the cookie will not be accessible by scripting languages) . Esta configuración puede ayudar a reducir el robo de identidad a través de ataques XSS. Por defecto es FALSO

Detalles técnicos

Valor de retorno: TRUE en caso de éxito. En caso de fallo
Versión de PHP: 4+
PHP Cambios: PHP 5.5 - Un atributo max-age fue incluido en la cabecera Set-Cookie se envía al cliente
PHP 5.2 - Se añadió el parámetro httponly

Más ejemplos

Ejemplo

Varias vencen las fechas para las galletas:

<?php
$value = "Hello world!";

// cookie will expire when the browser close
setcookie("myCookie", $value);

// cookie will expire in 1 hour
setcookie("myCookie", $value, time() + 3600);

// cookie will expire in 1 hour, and will only be available
// within the php directory + all sub-directories of php
setcookie("myCookie", $value, time() + 3600, "/php/");
?>
<html>
<body>

...some code...

</body>
</html>
Ejecutar ejemplo »

Ejemplo

Para modificar una cookie, acaba de establecer (again) la cookie utilizando el setcookie() función:

<?php
$cookie_name = "user";
$cookie_value = "Alex Porter";
setcookie($cookie_name, $cookie_value, time() + (86400 * 30), "/");
?>
<html>
<body>

<?php
if(!isset($_COOKIE[$cookie_name])) {
    echo "Cookie named '" . $cookie_name . "' is not set!";
} else {
    echo "Cookie '" . $cookie_name . "' is set!<br>";
    echo "Value is: " . $_COOKIE[$cookie_name];
}
?>

</body>
</html>
Ejecutar ejemplo »

Ejemplo

Para eliminar una cookie, utilice el setcookie() función con una fecha de caducidad en el pasado:

<?php
// set the expiration date to one hour ago
setcookie("user", "" , time() - 3600);
?>
<html>
<body>

<?php
echo "Cookie 'user' is deleted.";
?>

</body>
</html>
Ejecutar ejemplo »

Ejemplo

Crear un pequeño script que comprueba si cookies están habilitadas. En primer lugar, tratar de crear una cookie de prueba con el setcookie() función, y luego contar la variable de matriz $ _COOKIE:

<?php
setcookie("test_cookie", "test" , time() + 3600, '/');
?>
<html>
<body>

<?php
if(count($_COOKIE) > 0) {
    echo "Cookies are enabled.";
} else {
    echo "Cookies are disabled.";
}
?>

</body>
</html>
Ejecutar ejemplo »

<PHP HTTP Referencia