Cookie是什么,PHP Cookie的用法(附带实例)
Cookie 常用于识别用户。Cookie 是服务器留在用户计算机中的小文件。每当相同的计算机通过浏览器请求页面时,它同时会发送 Cookie。
Cookie 的工作原理是,当一个客户端浏览器连接到一个 URL 时,它会首先扫描本地存储的 Cookie,如果发现其中有和 URL 相关联的 Cookie,就会把它们返回给服务器端。
Cookie 通常应用于以下几个方面:
用户可以通过 header 以如下格式在客户端生成 Cookie:
下面通过实例讲解如何取回上面创建的名为 user 的 Cookie 的值,并把它显示在页面上。
用户可以通过 isset() 函数来确认是否已设置 Cookie。例如:
① 在浏览器的菜单栏中选择“工具”→“Internet选项”命令,如下图所示:
② 打开【Internet选项】对话框,在【常规】选项卡中单击【删除】按钮,如下图所示:
③ 打开【删除浏览历史记录】对话框,选中【Cookie和网站数据】复选框,单击【删除】按钮即可,如下图所示:
返回【Internet选项】对话框,单击【确定】按钮即可完成删除 Cookie 的操作。
Cookie 的工作原理是,当一个客户端浏览器连接到一个 URL 时,它会首先扫描本地存储的 Cookie,如果发现其中有和 URL 相关联的 Cookie,就会把它们返回给服务器端。
Cookie 通常应用于以下几个方面:
- 在页面之间传递变量。因为浏览器不会保存当前页面上的任何变量信息,如果页面被关闭,那么页面上的所有变量信息也会消失。通过 Cookie,可以把变量值在 Cookie 中保存下来,然后另外的页面可以重新读取这个值;
- 记录访客的一些信息。利用 Cookie 可以记录客户曾经输入的信息或者记录访问网页的次数;
- 把所查看的页面保存在 Cookie 临时文件夹中,可以提高以后的浏览速度。
用户可以通过 header 以如下格式在客户端生成 Cookie:
Set-cookie:NAME = VALUE;[expires=DATE;][path=PATH;][domain=DOMAIN_NAME;][secure]NAME 为 Cookie 的名称,VALUE 为 Cookie 的值,expires=DATE 为到期日,path=PATH、domain=DOMAIN_NAME 为与某个地址相对应的路径和域名,secure 表示 Cookie 不能通过单一的 HTTP 连接传递。
PHP创建Cookie
用户能够通过 PHP 创建 Cookie。创建 Cookie 使用 setcookie() 函数,语法格式如下:setcookie(名称, cookie值, 到期日, 路径, 域名, secure)其中的参数与 set-cookie 中的参数意义相同。
在下面的例子中将创建名为 user 的 Cookie,为它赋值为“Cookie保存的值”,并且规定此 Cookie 在一小时后过期。setcookie() 函数必须位于 <html> 标签之前。
<?php setcookie("user", " Cookie保存的值", time()+3600); ?> <html> <body> </body> </html>运行上述程序,会在 Cookies 文件夹下自动生成一个 Cookie 文件,有效期为一个小时,在 Cookie 失效后,Cookies 文件自动被删除。
提示,如果用户没有设置 Cookie 的到期时间,则在关闭浏览器时会自动删除 Cookie 数据。
PHP读取Cookie
那么如何取回 Cookie 的值呢?在 PHP 中使用 $_COOKIE 变量取回 Cookie 的值。下面通过实例讲解如何取回上面创建的名为 user 的 Cookie 的值,并把它显示在页面上。
<?php // 输出一个Cookie echo $_COOKIE["user"]; // 显示所有的Cookie print_r($_COOKIE); ?>程序运行效果如下图所示:

用户可以通过 isset() 函数来确认是否已设置 Cookie。例如:
<?php if (isset($_COOKIE["user"])) //如果Cookie文件存在 echo "Welcome " . $_COOKIE["user"] . "!<br/>"; else //如果Cookie文件不存在 echo "Welcome guest!<br/>"; ?>程序运行效果如下图所示:

PHP删除Cookie
常见的删除 Cookie 的方法有两种,包括在浏览器中手动删除和使用函数删除。1) 在浏览器中手动删除
由于 Cookie 自动生成的文本会存在于 IE 浏览器的 Cookies 临时文件夹中,在浏览器中删除 Cookie 文件是比较快捷的方法,具体的操作步骤如下:① 在浏览器的菜单栏中选择“工具”→“Internet选项”命令,如下图所示:

② 打开【Internet选项】对话框,在【常规】选项卡中单击【删除】按钮,如下图所示:

③ 打开【删除浏览历史记录】对话框,选中【Cookie和网站数据】复选框,单击【删除】按钮即可,如下图所示:

返回【Internet选项】对话框,单击【确定】按钮即可完成删除 Cookie 的操作。
2) 使用函数删除
删除 Cookie 仍然使用 setcookie() 函数。当删除 Cookie 时,将第二个参数设置为空,第三个参数的过期时间设置为小于系统的当前时间即可。<?php //将Cookie的过期时间设置为比当前时间减少10秒 setcookie("user", "", time()-10); ?>在上面的代码中,time() 函数返回的是当前的系统时间,把过期时间减少 10秒,这样过期时间就会变成过去的时间,从而删除 Cookie。如果将过期时间设置为 0,也可以直接删除 Cookie。