PHP Cookie
Las cookies se utilizan a menudo para identificar a los usuarios.
¿Qué es una cookie?
Las cookies se utilizan a menudo para identificar a los usuarios. Una cookie es un pequeño archivo que el servidor deja en el ordenador del usuario. Cada vez que el mismo ordenador solicita una página a través del navegador, este enviará la cookie. Con PHP, usted puede crear y recuperar el valor de las cookies.
¿Cómo crear una cookie?
La función setcookie() se utiliza para establecer una cookie.
Nota:La función setcookie() debe colocarse antes de la etiqueta <html>.
Sintaxis
setcookie(name, value, expire, path, domain);
Ejemplo 1
En el siguiente ejemplo, crearemos una cookie llamada 'user' y le asignaremos el valor 'ejemplo'. También especificamos que esta cookie expira después de una hora:
<?php
setcookie("user", "ejemplo", time()+3600);
?>
<html>
.....
Nota:Al enviar una cookie, su valor se codifica automáticamente en URL y se decodifica automáticamente al recuperarlo. (Para evitar la codificación URL, utilice setrawcookie() en su lugar.)
Ejemplo 2
También puede establecer el tiempo de expiración de una cookie de otra manera. Esto puede ser más sencillo que usar segundos.
<?php
$expire=time()+60*60*24*30;
setcookie("user", "ejemplo", $expire);
?>
<html>
.....
En el ejemplo anterior, el tiempo de expiración se establece en un mes (60 segundos * 60 minutos * 24 horas * 30 días)。
¿Cómo recuperar el valor de una cookie?
La variable $_COOKIE de PHP se utiliza para recuperar el valor de una cookie.
En el siguiente ejemplo, recuperamos el valor de la cookie llamada 'user' y lo mostramos en la página:
<?php // 输出 cookie 值 echo $_COOKIE["user"]; // 查看所有 cookie print_r($_COOKIE); ?>
En el siguiente ejemplo, usamos la función isset() para confirmar si se ha establecido una cookie:
<html> <head> <meta charset="utf-8"> <title>Ejemplo(example.com)</title> </head> <body> <?php if (isset($_COOKIE["user"])) echo "欢迎 " . $_COOKIE["user"] . "!<br>"; else echo "普通访客!<br>"; ?> </body> </html>
¿Cómo eliminar una cookie?
Al eliminar una cookie, debe cambiar la fecha de expiración a un momento en el pasado.
Ejemplo de eliminación:
<?php
// 设置 cookie 过期时间为过去 1 小时
setcookie("user", "", time()-3600);
?>
¿Qué hacer si el navegador no admite cookies?
Si su aplicación necesita tratar con navegadores que no admiten cookies, tendrá que utilizar otros métodos para pasar información entre las páginas de su aplicación. Una forma es transmitir datos a través de un formulario (ya hemos cubierto el contenido sobre formularios y entrada de usuario en capítulos anteriores de este tutorial).
El siguiente formulario envía la entrada del usuario a 'welcome.php' cuando el usuario hace clic en el botón 'Submit':
<html> <head> <meta charset="utf-8"> <title>Ejemplo(example.com)</title> </head> <body> <form action="welcome.php" method="post"> 名字: <input type="text" name="name"> 年龄: <input type="text" name="age"> <input type="submit"> </form> </body> </html>
Recupere los valores del archivo 'welcome.php', como se muestra a continuación:
<html> <head> <meta charset="utf-8"> <title>Ejemplo(example.com)</title> </head> <body> 欢迎 <?php echo $_POST["name"]; ?>.<br> 你 <?php echo $_POST["age"]; ?> 岁了。 </body> </html>Otras extensiones