0

PHP中使用Cookie保存数据详解通俗易懂

什么是 Cookie?

cookie 常用于识别用户。cookie 是服务器留在用户计算机中的小文件。每当相同的计算机通过浏览器请求页面时,它同时会发送 cookie。通过 PHP,您能够创建并取回 cookie 的值。



Cookie 的基本工作原理

如果用户再次访问站点上的页面,浏览器就会在本地硬盘上查找与该 URL 相关联的 Cookie。如果该 Cookie 存在,浏览器就将它与页面请求一起发送到您的站点。



Cookie 的用途

Cookie 能够帮助Web站点保存有关访问者的信息。更概括地说,Cookie 是一种保持Web 应用程序连续性的方法。使Web站点能记住用户,常用于身份识别。





第一步:创建 cookie?

PHP中使用 setcookie() 函数用于设置cookie,该函数的格式如下:

setcookie(name, value, expire);

这里主要用到3个参数

name——cookie名字

value——cookie的值

expire——cookie有效期


下面是一个例子

setcookie("user", "Kevin", time()+3600);

解释:创建一个名字为user的cookie,该cookie的值为Kevin,有效期为从一个小时,注意:如果不设置时间,就不会保存到cookie文件中。浏览器不关时能够访问。一旦浏览器关闭就无法访问。





第二步:如何取回 Cookie 的值?

PHP使用$_COOKIE 变量用于取回 cookie 的值,格式如下:

$_COOKIE[name];

在下面的例子中,我们取回了名为 "user" 的 cookie 的值Kevin,并把它显示在了页面上:



$username=$_COOKIE['user'];


取值的时候,一般会先判断是否为空,再进行取值操作。上面的代码并不严谨,严谨的代码应该这样写:


if (!empty($_COOKIE['user'])){
  $username=$_COOKIE['user'];
}

第三步:删除 cookie?

当删除 cookie时,可以有多种方法,可以使有效期日期变更为过去的某个时间点,直接设置cookie值为空字符串,或者直接将cookie置为NULL。

删除的例子:


setcookie($cookieName,value,time()-秒数);

setcookie($cookiename, '');

setcookie($cookiename, NULL);


删除前面添加的名字为user的cookie值


setcookie("user", NULL);

删除所有cookie

有的时候,可能需要清空所有cookie,这时候不必一个一个的删除,可以通过一个foreach遍历cookie,删除所有的cookie,代码如下:


foreach($_COOKIE as $key=>$val){
 setcookie($key,"",time()-100);
}