PHP Cookie学习笔记


Posted in PHP onAugust 23, 2016

什么是Cookie

Cookie是一种在远程浏览器端存储数据并以此来跟踪和识别用户的机制。简单地说,Cookie是Web服务器暂时存储在用户硬盘上的一个文本文件,并随后被Web浏览器读取。当用户再次访问Web网站时,网站通过读取Cookies文件记录这位访客的特定信息(如上次访问的位置、花费的时间、用户名和密码等),从而迅速作出响应,如在页面中不需要输入用户的ID和密码即可直接登录网站等。
文本文件的命令格式如下:

用户名@网站地址[数字].txt 

Cookie的功能

Web服务器可以应用Cookies包含信息的任意性来筛选并经常性维护这些信息,以判断在HTTP传输中的状态。Cookie常用于以下3个方面:
•记录访客的某些信息。如可以利用Cookie记录用户访问网页的次数,或者记录访客曾经输入过的信息,另外,某些网站可以使用Cookie自动记录访客上次登录的用户名。
•在页面之间传递变量。浏览器并不会保存当前页面上的任何变量信息,当页面被关闭时页面上的所有变量信息将随之消失。如果用户声明一个变量id=8,要把这个变量传递到另一个页面,可以把变量id以Cookie形式保存下来,然后在下一页通过读取该Cookie来获取变量的值。
 •将所查看的Internet页存储在Cookies临时文件夹中,可以提高以后浏览的速度。

创建Cookie

在PHP中通过setcookie()函数创建Cookie。语法格式如下:

bool setcookie(string name[,string value[,int expire[, string path[,string domain[,int secure]]]]])

PHP Cookie学习笔记

读取Cookie

在PHP中可以直接通过超级全局数组$_COOKIE[]来读取浏览器端的Cookie值。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
 <meta http-equiv="Content-Type" content="text/html; charset=gb2312"
  />
 <title>PHP语言基础</title>

</head>
<body>
<?php
date_default_timezone_set("PRC");
header("Content-Type:text/html; charset=gb2312");
if (!isset($_COOKIE["visittime"])) {
 setcookie("visittime", date("y-m-d H:i:s"));
 echo "这是第一次保存Cookie"."<br>";
} else {
 setcookie("visittime", date("y-m-d H:i:s"), time() + 60);
 echo "上次访问时间为:" . $_COOKIE["visittime"];
 echo "<br>";
}
echo "本次访问时间:" . date("y-m-d H:i:s");
?>
</body>
</html>

第一次运行结果:
这是第一次保存Cookie
本次访问时间:16-07-16 08:26:25

第二次运行结果:
上次访问时间为:16-07-16 08:26:25
本次访问时间:16-07-16 08:27:25 

上述代码,先通过isset()函数检测Cookie文件是否存在,不存在通过setcookie()函数创建一个Cookie文件,如果存在设置Cookie的失效时间为60秒。

删除Cookie

当Cookie被创建后,如果没有设置它的失效时间,其Cookie文件会在关闭浏览器时被自动删除。如果要在关闭浏览器之前删除Cookie文件,方法有两种:一种是使用setcookie()函数删除,另一种是在浏览器中手动删除Cookie。下面分别进行介绍。

1.使用setcookie()函数删除Cookie

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

例如,将Cookie的过期时间设置为当前时间减1秒,代码如下:

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

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

2.在浏览器中手动删除Cookie

在使用Cookie时,Cookie自动生成一个文本文件存储在IE浏览器的Cookies临时文件夹中。在浏览器中删除Cookie文件是非常便捷的方法。

Cookie的生命周期

如果Cookie不设定时间,就表示它的生命周期为浏览器会话的期间,只要关闭IE浏览器,Cookie就会自动消失。这种Cookie被称为会话Cookie,一般不保存在硬盘上,而是保存在内存中。

如果设置了过期时间,那么浏览器会把Cookie保存到硬盘中,再次打开IE浏览器时会依然有效,直到它的有效期超时。

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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
在PHP3中实现SESSION的功能(二)
Oct 09 PHP
海河写的 Discuz论坛帖子调用js的php代码
Aug 23 PHP
几个php应用技巧
Mar 27 PHP
php导出word格式数据的代码实例
Nov 25 PHP
YiiFramework入门知识点总结(图文教程)
Dec 28 PHP
PHP生成图片缩略图类示例
Jan 12 PHP
php自定义函数br2nl实现将html中br换行符转换为文本输入中换行符的方法【与函数nl2br功能相反】
Feb 17 PHP
基于PHP实现的多元线性回归模拟曲线算法
Jan 30 PHP
PHP5.0 TIDY_PARSE_FILE缓冲区溢出漏洞的解决方案
Oct 14 PHP
php如何计算两坐标点之间的距离
Dec 29 PHP
TP5框架请求响应参数实例分析
Oct 17 PHP
PHP调用QQ互联接口实现QQ登录网站功能示例
Oct 24 PHP
PHP生成及获取JSON文件的方法
Aug 23 #PHP
利用PHP如何写APP接口详解
Aug 23 #PHP
PHP微信API接口类
Aug 22 #PHP
简单PHP会话(session)说明介绍
Aug 21 #PHP
PHP中ID设置自增后不连续的原因分析及解决办法
Aug 21 #PHP
PHP控制前台弹出对话框的实现方法
Aug 21 #PHP
php代码检查代理ip的有效性
Aug 19 #PHP
You might like
我的论坛源代码(九)
2006/10/09 PHP
提示Trying to clone an uncloneable object of class Imagic的解决
2011/10/27 PHP
php遍历数组的方法分享
2012/03/22 PHP
在PHP中使用FastCGI解析漏洞及修复方案
2015/11/10 PHP
laravel5.6 框架操作数据 Eloquent ORM用法示例
2020/01/26 PHP
jquery 查找iframe父级页面元素的实现代码
2011/08/28 Javascript
JS代码放在head和body中的区别分析
2011/12/01 Javascript
关于js中alert弹出窗口文本换行问题简单详细说明
2012/12/11 Javascript
实例讲解JavaScript的Backbone.js框架中的View视图
2016/05/05 Javascript
jQuery 如何实现一个滑动按钮开关
2016/12/01 Javascript
Javascript ES6中数据类型Symbol的使用详解
2017/05/02 Javascript
vue中添加mp3音频文件的方法
2018/03/02 Javascript
基于vue打包后字体和图片资源失效问题的解决方法
2018/03/06 Javascript
解决Idea、WebStorm下使用Vue cli脚手架项目无法使用Webpack别名的问题
2019/10/11 Javascript
vue2路由基本用法实例分析
2020/03/06 Javascript
小程序自定义弹框效果
2020/11/16 Javascript
Django查找网站项目根目录和对正则表达式的支持
2015/07/15 Python
Python实现Mysql数据库连接池实例详解
2017/04/11 Python
Python装饰器实现几类验证功能做法实例
2017/05/18 Python
Python 找到列表中满足某些条件的元素方法
2018/06/26 Python
python 实现A*算法的示例代码
2018/08/13 Python
Python实现朴素贝叶斯的学习与分类过程解析
2019/08/24 Python
Window10下python3.7 安装与卸载教程图解
2019/09/30 Python
Window版下在Jupyter中编写TensorFlow的环境搭建
2020/04/10 Python
Django静态资源部署404问题解决方案
2020/05/11 Python
python 基于pygame实现俄罗斯方块
2021/03/02 Python
什么是Rollback Segment
2013/04/22 面试题
财务经理岗位职责
2013/11/09 职场文书
中学生在校期间的自我评价分享
2013/11/13 职场文书
社区禁毒工作方案
2014/06/02 职场文书
中层领导干部群众路线对照检查材料思想汇报
2014/10/02 职场文书
党的群众路线教育实践活动党员个人整改措施
2014/10/27 职场文书
小学教师个人总结
2015/02/05 职场文书
同意报考证明
2015/06/17 职场文书
开学典礼校长致辞
2015/07/29 职场文书
Windows Server 2016 配置 IIS 的详细步骤
2022/04/28 Servers