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 相关文章推荐
PHP 模拟登陆MSN并获得用户信息
May 16 PHP
php 判断数组是几维数组
Mar 20 PHP
如何阻止网站被恶意反向代理访问(防网站镜像)
Mar 18 PHP
PHP开发微信支付的代码分享
May 25 PHP
PHP遍历数组的三种方法及效率对比分析
Feb 12 PHP
php自动识别文字编码并转换为目标编码的方法
Aug 08 PHP
php实现的农历算法实例
Aug 11 PHP
PHP正则表达式之捕获组与非捕获组
Nov 06 PHP
功能强大的PHP POST提交数据类
Jul 15 PHP
浅谈php中的循环while、do...while、for、foreach四种循环
Nov 05 PHP
PHP SPL 被遗落的宝石【SPL应用浅析】
Apr 20 PHP
PHP抽象类基本用法示例
Dec 28 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
如何在PHP中使用Oracle数据库(5)
2006/10/09 PHP
php 变量定义方法
2009/06/14 PHP
discuz7 phpMysql操作类
2009/06/21 PHP
PHP删除特定数组内容并且重建数组索引的方法.
2011/03/25 PHP
PHP curl实现抓取302跳转后页面的示例
2014/07/04 PHP
php+mysql实现无限级分类
2015/11/11 PHP
PHP7使用ODBC连接SQL Server2008 R2数据库示例【基于thinkPHP5.1框架】
2019/05/06 PHP
HTTP头隐藏PHP版本号实现过程解析
2020/12/09 PHP
javascript OFFICE控件测试代码
2009/12/08 Javascript
javascript中的缓动效果实现程序
2012/12/29 Javascript
前端开发过程中浏览器版本的两种判定方法
2013/10/30 Javascript
让input框实现类似百度的搜索提示(基于jquery事件监听)
2014/01/31 Javascript
node.js中的url.format方法使用说明
2014/12/10 Javascript
jquery插件jquery.beforeafter.js实现左右拖拽分隔条对比图片的方法
2015/08/07 Javascript
遮罩层点击按钮弹出并且具有拖动和关闭效果(两种方法)
2015/08/20 Javascript
jQuery实现对象转为url参数的方法
2017/01/11 Javascript
jQuery插件echarts实现的单折线图效果示例【附demo源码下载】
2017/03/04 Javascript
详解Angular 4.x Injector
2017/05/04 Javascript
vue init webpack 建vue项目报错的解决方法
2018/09/29 Javascript
详解微信小程序网络请求接口封装实例
2019/05/02 Javascript
js实现图片区域可点击大小随意改变(适用移动端)代码实例
2019/09/11 Javascript
python中将函数赋值给变量时需要注意的一些问题
2017/08/18 Python
解决出现Incorrect integer value: '' for column 'id' at row 1的问题
2017/10/29 Python
python 执行shell命令并将结果保存的实例
2018/05/11 Python
python3 requests库实现多图片爬取教程
2019/12/18 Python
Python3运算符常见用法分析
2020/02/14 Python
New Balance英国官方网站:始于1906年,百年慢跑品牌
2016/12/07 全球购物
Paul’s Boutique官网:英国时尚手袋品牌
2018/03/31 全球购物
全球领先的中国制造商品在线批发平台:DHgate
2020/01/28 全球购物
介绍一下Make? 为什么使用make
2013/12/08 面试题
北体毕业生求职信
2014/02/28 职场文书
慰问敬老院活动总结
2014/04/26 职场文书
优秀护士事迹材料
2014/12/25 职场文书
2015年实习班主任工作总结
2015/04/23 职场文书
2016习总书记系列重要讲话心得体会
2016/01/15 职场文书