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 相关文章推荐
NOT NULL 和NULL
Jan 15 PHP
php获取网卡的MAC地址支持WIN/LINUX系统
Apr 30 PHP
PHP里8个鲜为人知的安全函数分析
Dec 09 PHP
thinkphp3.2点击刷新生成验证码
Feb 16 PHP
PHP Header用于页面跳转时的几个注意事项
Oct 21 PHP
PHP实现活动人选抽奖功能
Apr 19 PHP
PHP substr()函数参数解释及用法讲解
Nov 23 PHP
PHP+百度AI OCR文字识别实现了图片的文字识别功能
May 08 PHP
PHP实现基于状态的责任链审批模式详解
May 31 PHP
php 中self,this的区别和操作方法实例分析
Nov 04 PHP
PHP高并发和大流量解决方案整理
Dec 24 PHP
PHP实现页面静态化深入讲解
Mar 04 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
php实现转换ubb代码的方法
2015/06/18 PHP
fsockopen pfsockopen函数被禁用,SMTP发送邮件不正常的解决方法
2015/09/20 PHP
解决ThinkPHP下使用上传插件Uploadify浏览器firefox报302错误的方法
2015/12/18 PHP
简单解析PHP程序的运行流程
2016/06/23 PHP
php的4种常用运行方式详解
2016/12/22 PHP
juqery 学习之三 选择器 层级 基本
2010/11/25 Javascript
js动态加载以及确定加载完成的代码
2011/07/31 Javascript
Javascript实现带关闭按钮的网页漂浮广告代码
2014/01/12 Javascript
javascript实现添加附件功能的方法
2015/11/18 Javascript
JS实现弹出居中的模式窗口示例
2016/06/20 Javascript
Vue.js路由vue-router使用方法详解
2017/03/20 Javascript
微信小程序 setData使用方法及常用错误解决办法
2017/05/11 Javascript
详解vue express启动数据服务
2017/07/05 Javascript
Vue单文件组件基础模板小结
2017/08/10 Javascript
js原生日历的实例(推荐)
2017/10/31 Javascript
vue父组件点击触发子组件事件的实例讲解
2018/02/08 Javascript
解决vue项目报错webpackJsonp is not defined问题
2018/03/14 Javascript
es6 filter() 数组过滤方法总结
2019/04/03 Javascript
extjs图表绘制之条形图实现方法分析
2020/03/06 Javascript
vue+element获取el-table某行的下标,根据下标操作数组对象方式
2020/08/07 Javascript
vue使用echarts实现水平柱形图实例
2020/09/09 Javascript
[04:19]DOTA2亚洲邀请赛 现场花絮
2015/03/11 DOTA
Python sqlite3事务处理方法实例分析
2017/06/19 Python
python 每天如何定时启动爬虫任务(实现方法分享)
2018/05/21 Python
Python3 使用cookiejar管理cookie的方法
2018/12/28 Python
基于Tensorflow高阶读写教程
2020/02/10 Python
CSS3中几个新增加的盒模型属性使用教程
2016/03/01 HTML / CSS
意大利和国际奢侈品牌购物网站:Suitnegozi.com
2021/01/15 全球购物
酒店经理职责
2014/01/30 职场文书
党员干部公开承诺书
2014/03/26 职场文书
行风评议整改报告
2014/11/06 职场文书
2014年学生会主席工作总结
2014/11/07 职场文书
2014年生产部工作总结
2014/12/17 职场文书
Goland使用Go Modules创建/管理项目的操作
2021/05/06 Golang
解决Python中的modf()函数取小数部分不准确问题
2021/05/28 Python
MySQL8.0.18配置多主一从
2021/06/21 MySQL