-
什么是 Cookie?
cookie 常用于识别用户。cookie 是服务器留在用户计算机中的小文件。每当相同的计算机通过浏览器请求页面时,它同时会发送 cookie。通过 PHP,您能够创建并取回 cookie 的值。
如何创建 cookie?
setcookie() 函数用于设置 cookie。
注释:setcookie() 函数必须位于 <html> 标签之前。
语法
setcookie(name, value, expire, path, domain);
例子
在下面的例子中,我们将创建名为 "user" 的 cookie,把为它赋值 "Alex Porter"。我们也规定了此 cookie 在一小时后过期:
<?php setcookie("user", "Alex Porter", time()+3600); ?> <html> <body> </body> </html>
注释:在发送 cookie 时,cookie 的值会自动进行 URL 编码,在取回时进行自动解码(为防止 URL 编码,请使用 setrawcookie() 取而代之)。
如何取回 Cookie 的值?
PHP 的 $_COOKIE 变量用于取回 cookie 的值。
在下面的例子中,我们取回了名为 "user" 的 cookie 的值,并把它显示在了页面上:
<?php // Print a cookie echo $_COOKIE["user"]; // A way to view all cookies print_r($_COOKIE); ?>
在下面的例子中,我们使用 isset() 函数来确认是否已设置了 cookie:
<html> <body> <?php if (isset($_COOKIE["user"])) echo "Welcome " . $_COOKIE["user"] . "!<br />"; else echo "Welcome guest!<br />"; ?> </body> </html>
如何删除 cookie?
1. 将Cookie的生存时间默认设置为空,即省略setcookie()函数的所有参数列,仅导入第一个参数,则生存期限与浏览器一样,浏览器关闭时Cookie就会被自动删除。
setcookie("user");2.当删除 cookie 时,您应当使过期日期变更为过去的时间点。
删除的例子:
<?php // set the expiration date to one hour ago setcookie("user", "", time()-3600); ?>
如果浏览器不支持 cookie 该怎么办?
如果您的应用程序涉及不支持 cookie 的浏览器,您就不得不采取其他方法在应用程序中从一张页面向另一张页面传递信息。一种方式是从表单传递数据(有关表单和用户输入的内容,稍早前我们已经在本教程中介绍过了)。
下面的表单在用户单击提交按钮时向 "welcome.php" 提交了用户输入:
<html> <body> <form action="welcome.php" method="post"> Name: <input type="text" name="name" /> Age: <input type="text" name="age" /> <input type="submit" /> </form> </body> </html>
取回 "welcome.php" 中的值,就像这样:
<html> <body> Welcome <?php echo $_POST["name"]; ?>.<br /> You are <?php echo $_POST["age"]; ?> years old. </body> </html>
八、一个具体的例子,希望大家对cookie有更加深刻的认识
代码如下:
<?php
if(!isset($_POST['email'])){
//如果表表单未提交,显示表单
//如果cookie存在,则在该文本框中预填好
?>
<html>
<head></head>
<body>
<form action ="" method= "post">
请输入你的email:<input type ="text" name="email" value="<?php echo $_COOKIE['email'];?>">
<input type="submit" name="submit" value="提交">
<?php
//计算上次表单操作和现在的时间
//if($_COOKIE["lastsave"]){
//$days = round((time() - $_COOKIE['lastsave']) /86400);
//echo "<br/>自上次提交表单,共".$days;
//}
?>
</form>
<?php
}
else {
if(!empty($_POST['email'])){
setcookie("email",$_POST['email'],mktime()+(86400 * 30),"/");
//setcookie("lastsave",time() ,mktime()+(86400*30), "/");
echo "你的email已经记录.";
}else{
echo "错误,请输入你的电子邮件地址。";
}
}
?>
</body>
</html>
PHP之学习cookie详解
最新推荐文章于 2021-03-17 06:14:28 发布