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