php cookie使用实例

一般Cookie会存在哪儿?

Chrome浏览器的Cookie文件的存放路径是:

C:\Users\你的用户名\AppData\Local\Google\Chrome\User Data\Default\Cookies

Firefox浏览器的Cookies文件存放路径是:

C:\Users\你的用户名\AppData\Roaming\Mozilla\Firefox\Profiles\xxx.default\cookies.sqlite 每个人可能略有不同

 

php中Cookie的功能和用途是什么?

最根本的用途是 Cookie 能够帮助 Web 站点保存有关访问者的信息。

例如,购物站点上的 Web 服务器跟踪每个购物者,以便站点能够管理购物车和其他的用户相关信息。因此 Cookie 的作用就类似于名片,它提供了相关的标识信息,可以帮助应用程序确定如何继续执行。

使用 Cookie 能够达到多种目的,所有这些目的都是为了使 Web 站点记住您。例如,一个实施民意测验的站点可以简单地利用 Cookie 作为布尔值,表示您的浏览器是否已经参与了投票,从而避免您重复投票; 而那些要求用户登录的站点则可以通过 Cookie 来确定您是否已经登录过,这样您就不必每次都输入凭据。

注意: 一般不要用 Cookie 保存数据集或其他大量的数据。并非所有的浏览器都支持 Cookie,并且数据信息是以明文文本的形式保存在客户端计算机中,因此最好不要保存敏感的、未加密的数据,否则会影响网络的安全性。

 

php中如何创建Cookie

使用 setcookie() 函数的全部参数设置,实例代码如下的显示

<?php

  setcookie("username","cyy",time()+60*60,"/test",".php.cn",1);

?>

说明:上例中表示建立一个识别名称为“username” 的 Cookie,其内容值为字符串“cyy”,而在客户端的存储有效期为1小时。参数"/test" 表示 Cookie 只有在这个子目录或子目录中有效。参数".php.cn" 使 Cookie能在如 php.cn 域名下的所有子域中都有效,虽然 “.” 并不是必需的,但加上它会兼容更多的浏览器。当最后一个参数设为 1 时,则 Cookie 仅在安全的连接中才能被设置。

使用setcookie()给的值只能是数字或者字符串,不能是其他的复杂结构。

 

php中如何读取Cookie

从PHP5之后,任何从客户端发送过来的 Cookie信息,都会被自动保存在 $_COOKIE 全局数组中,所以在每个 PHP脚本中都可以从该数组中读取相应的 Cookie信息。 $_COOKIE 全局数组存储所有通过 HTTP 传递的 Cookie 资料内容,并以 Cookie 的识别名称为索引值、内容值为元素。

在设置 Cookie 脚本中,第一次读取它的信息并不会生效,必须刷新或到下一个页面才可以看到 Cookie 值,因为 Cookie 要先被设置到客户端,再次访问时才能被发送过来,这是才能被获取。所以要测试一个 Cookie 是否被成功设定,可以再其到期之前 通过另外一个页面来访问其的值。

<?php

date_default_timezone_set('PRC');
if(!isset($_COOKIE['time'])){
    setcookie('time',date('Y-m-d H:i:s'));//检测cookie是否存在,创建cookie
    echo '第一次访问';
}else{
    setcookie('time',date('Y-m-d H:i:s'),time()+60);//设置保存cookie失效的时间
    echo '上次访问的时间是:'.$_COOKIE['time'];//输出上次访问的时间
    echo '<br>';
}
echo '本次访问的时间为:'.date('Y-m-d H:i:s');

在上面的代码中,首先使用 isset()函数检测 Cookie 文件是否存在。如果不存在,则使用 setcookie() 函数创建一个Cookie,并输出相应的字符串;如果 Cookie 文件存在,则使用 setcookie() 函数 设置文件失效的时间,并输出用户上次访问网站的时间,最后在页面输出本次访问网站的当前时间。

 

 

 

 

注意:如果未设置 Cookie 失效的时间,则在关闭浏览器时自动删除 Cookie 数据。如果为 Cookie 设置了失效的时间,浏览器将会记住Cookie 数据,即使重新启动了计算机,只要没有到期,再访问网站时也会获得访问的数据信息。

 

php中如何删除Cookie

1. 使用 setcookie() 函数把目标 Cookie 设置为 “已经过期” 的状态来删除 Cookie

删除 Cookie 和 创建 Cookie 的方式基本类型,删除 Cookie 也使用 setcookie() 函数。 删除 Cookie只需要将 setcookie() 函数中的第二个参数设置为空值,将第三个参数 Cookie 的失效时间设置为 小于系统的当前时间即可。

下面就来通过代码来将Cookie 的失效时间设置为当前时间减1秒。

setcookie("Cookie_name", "" , time()-1);

上面的代码中,time()函数返回以秒表示的当前的时间戳,把当前时间减1秒就会得到过去的时间,从而删除 Cookie。

 

2. 使用 setcookie() 函数把 Cookie 的生存时间默认设置为空, 则生存期限与浏览器一样,浏览器关闭时 Cookie就会被删除。只指定 Cookie 识别名称一个参数,即删除客户端中这个指定名称的 Cookie 资料。

setcookie("Cookie_name");

注意:把失效时间设置为0,也可以直接删除 Cookie。

 

Cookie 的生命周期

虽然 Cookie 可以长期保存在客户端浏览器中,但也不是一成不变的。因为浏览器最多允许存储 300 个Cookie文件,而且每个 Cookie 文件支持最大容量为4KB;每个域名最多支持20个 Cookie ,如果达到限制时,浏览器会自动地随机删除 Cookie 文件。

 

栏目
文章分类