PHP COOKIE详细讲解及应用实现

首先了解一下什么是cookie ?

cookie是服务器留在用户计算机中的一小段文本信息

可以实现多个页面的数据交换

下面来张图了解一下cookle的机制

当用户访问浏览器时,服务器会生成对应的cookie并发送到浏览器,浏览器会保存这个cookie,当用户下次再访问时浏览器会带上这个cookie一并请求服务器

cookle的创建

 %20setcookie(name,value,[expire,path,domain,secure]);

 %20 name%20:%20cookie的变量名;

 %20 %20value:%20cookie变量的初始值

 %20 %20expire:cookie%20的有效时间(当不设置时间时,默认会在浏览器关闭时cookie失效)

 %20 %20path:cookie%20的相关路径

 %20 %20domain:变量可使用的域

 %20 %20secure:在https的安全传输时才有效

注:cookie创建使用的一些限制

  1.     cookie变量名和值是必须要有的并且只能是字符串
  2.  %20 %20需在脚本文件的内容输出之前设置,否则设置不成功(在创建cookie之前不能有任何输出内容)
  3.     cookie设置完成后不能马上读取(设置cookie以后,下次访问时浏览器才会带上访问,所以不能马上读取)
  4.  %20 %20一个页面的cookie总数不超过20%20总大小小于40kb

cookie的获取

 %20 %20获取cookie的值使用%20$_COOKIE及修改

$_COOKIE其实是一个数组所以使用时可以用$_COOKIE['名']

<?php%20 //查看名为lie的cookie print_r($_COOKIE['lie']); //cookie的修改 setcookie('lie','aaa');%20//把名字为lie的cookie内容改为aaa; %20?>

COOKIE%20的删除

 %20 %201.可以把cookie的值设置为null%20或‘’;

 %20 %202.用cookie过期来删除cookie的值

<?php%20 //将cookie的值设为空 setcookie('lie',''); //将cookie的值设置为null%20 setcookie('lie',null); //将cookie的时间过期一般用过期来删除cookle /* time()%20+%20N%20代表N秒后过期 time()%20-%20N%20代表以过期N秒%20 */ setcookie('lie','aaa',time()-10); %20?>

那接下来我们来个小练习

COOKIE实现URL浏览记录

<?php%20 /*cookle实现url浏览记录 思路: 1.获取当前的url 2.把url放到cookle中 3.读取cookle的值 */ /*获取当前url用到了$_SERVER['REQUESR_URL']%20 cookle只能存放一条数据%20存放多条数据需要用到数组 但cookle的值只能是字符串%20%20%20 解决方案:用到系统内置的序列化函数serialize()与%20反序列化函数unserialize() 所谓序列化函数serizlize()就是把数组转换成字符串 相反%20unserialize()就是把转换成的字符串在转换为数组 $arr%20=%20[1,2,3]; $newArr%20=%20serialize($arr);%20%20//%20 print_r(unserialize($newArr))%20;%20//%20 */ //获取到url地址 $url%20=%20$_SERVER['REQUEST_URI']; $arr%20=%20[]; //首先要判断是否有浏览记录如果有的话那就把它提取提取出来如果没有的话就新建一个 if%20(isset($_COOKIE['lie']))%20{ $arr%20=%20unserialize($_COOKIE['lie']);%20%20//cookie['lie']提取出来的是字符串所以用反序列化函数 array_unshift($arr,%20$url); //将最新的记录放在数组的最开始 $arr%20=%20array_unique($arr); //去除重复的浏览记录 if(count($arr)%20>%2010){ //只让显示10条浏览记录 array_pop($arr); } setcookie('lie',serialize($arr));%20//将浏览记录放入cookie中 }%20else%20{ $arr[]%20=%20$url; setcookie('lie',serialize($arr)); } echo%20"URL浏览记录:"; echo%20"<ol>"; foreach%20($arr%20as%20$key%20=>%20$value)%20{ echo%20"<li>".$value."</li>"; } echo%20"</ol>"; echo%20'<hr%20/><a%20href="?id='.mt_rand(1,100).'">随机产生地址</a>'; %20?>

结果图如下:


文章来源: PHP COOKIE详细讲解及应用实现

人吐槽 人点赞

猜你喜欢

发表评论

用户名: 密码:
验证码: 匿名发表

你可以使用这些语言

查看评论:PHP COOKIE详细讲解及应用实现