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 相关文章推荐
多文件上载系统完整版
Oct 09 PHP
PHP4实际应用经验篇(8)
Oct 09 PHP
PHP+jQuery 注册模块开发详解
Oct 14 PHP
PHP实现Soap通讯的方法
Nov 03 PHP
php截取html字符串及自动补全html标签的方法
Jan 15 PHP
深入理解PHP 数组之count 函数
Jun 13 PHP
yii2.0实现创建简单widgets示例
Jul 18 PHP
php封装json通信接口详解及实例
Mar 07 PHP
PHP获取数组中单列值的方法
Jun 10 PHP
详解Yii2.0使用AR联表查询实例
Jun 16 PHP
laravel框架select2多选插件初始化默认选中项操作示例
Feb 18 PHP
如何判断微信付款码和支付宝付款码
Apr 01 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
跟我学Laravel之安装Laravel
2014/10/15 PHP
一款简单实用的php操作mysql数据库类
2014/12/08 PHP
Web程序工作原理详解
2014/12/25 PHP
Yii2 rbac权限控制操作步骤实例教程
2016/04/29 PHP
php解决DOM乱码的方法示例代码
2016/11/20 PHP
PHP实现类似于C语言的文件读取及解析功能
2017/09/01 PHP
php中钩子(hook)的原理与简单应用demo示例
2019/09/03 PHP
html+css+js实现xp window界面及有关功能
2013/03/26 Javascript
JS远程获取网页源代码实例
2013/09/05 Javascript
document节点对象的获取方式示例介绍
2013/12/24 Javascript
JSONP之我见
2015/03/24 Javascript
JavaScript中的await/async的作用和用法
2016/10/31 Javascript
详解react-router 4.0 下服务器如何配合BrowserRouter
2017/12/29 Javascript
Vue页面跳转动画效果的实现方法
2018/09/23 Javascript
实例详解带参数的 npm script
2019/05/28 Javascript
Layui实现带查询条件的分页
2019/07/27 Javascript
uni-app微信小程序登录并使用vuex存储登录状态的思路详解
2019/11/04 Javascript
Vue页面手动刷新,实现导航栏激活项还原到初始状态
2020/08/06 Javascript
浅谈vue使用axios的回调函数中this不指向vue实例,为undefined
2020/09/21 Javascript
Vant 中的Toast设置全局的延迟时间操作
2020/11/04 Javascript
[01:11:48]Fnatic vs IG 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
python选择排序算法的实现代码
2013/11/21 Python
Python开发的单词频率统计工具wordsworth使用方法
2014/06/25 Python
Python实现Sqlite将字段当做索引进行查询的方法
2016/07/21 Python
Python数据结构之顺序表的实现代码示例
2017/11/15 Python
Python 12306抢火车票脚本
2018/02/07 Python
pandas 取出表中一列数据所有的值并转换为array类型的方法
2018/04/11 Python
Python求均值,方差,标准差的实例
2019/06/29 Python
Python txt文件常用读写操作代码实例
2020/08/03 Python
Parfume Klik丹麦:香水网上商店
2018/07/10 全球购物
英国在线汽车和面包车零件商店:Car Parts 4 Less
2018/08/15 全球购物
来自圣地亚哥的实惠太阳镜:Knockaround
2018/08/27 全球购物
某公司C#程序员面试题笔试题
2014/05/26 面试题
放飞梦想演讲稿200字
2014/08/26 职场文书
电力安全学习心得体会
2016/01/18 职场文书
Spring Cloud OpenFeign模版化客户端
2022/06/25 Java/Android