php cookie工作原理与实例详解


Posted in PHP onJuly 18, 2016

在php 中cookie是我们常用到的,但是可能很多朋友都不知道cookie是怎么工作的,下面小编来给大家整理一下关于php cookie

工作原理与一些对于cookie读写操作实例。

Cookie和会话状态

做BS开发,这两个概念必不可少,先来个大概了解,没有实际应用很难深入,深入看参考地址!
什么是 Cookie?

Cookie 是一小段文本信息,伴随着用户请求和页面在 Web 服务器和浏览器之间传递。用户每次访问站点时,Web 应用程序都可以读取 Cookie 包含的信息。 Cookie 的基本工作原理如果用户再次访问站点上的页面,当该用户输入 URLwww.*****.com时,浏览器就会在本地硬盘上查找与该 URL 相关联的 Cookie。如果该 Cookie 存在,浏览器就将它与页面请求一起发送到您的站点。

Cookie 有哪些用途?

最根本的用途是:Cookie 能够帮助 Web 站点保存有关访问者的信息。更概括地说,Cookie 是一种保持Web 应用程序连续性(即执行“状态管理”)的方法.使 Web 站点记住您.

•当客户访问某个基于PHP技术的网站时,在PHP中可以使用setcookie()函数生成一个cookie,系统经处理把这个cookie发送到客户端并保存在C:Documents andSettings用户名Cookies目录下。

•cookie是HTTP标头的一部分,因此setcookie()函数必须在HTML本身的任何内容送到浏览器之前调用。这种限制与header()函数一样(如需了解head()函数,请自行查阅)。

•当客户再次访问该网站时,浏览器会自动把C:DocumentsandSettings用户名Cookies目录下与该站点对应的cookie发送到服务器,服务器则把从客户端传来的cookie将自动地转化成一个PHP变量。在PHP5中,客户端发来的cookie将被转换成全局变量。你可以通过$_COOKIE[‘xxx']读取。

定义一个cookie

•设置cookie:

•语法:boolsetcookie(stringname,[stringvalue,[int expire,[stringpath,[stringdomain,[int secure]]]]]);

本cookie函数可以有6个属性,常用的有3个参数。

1.实例:

 代码如下

$value="the best way is by yourself";
setcookie("cookiename",$value,time()+60*60*24*7);

1.接收和处理cookie

PHP对cookie有很好的支持,和form表单一样,接收的时候PHP会自动从web服务器接收HTTP头并且它。接收的时候和表单接收一样,用$_COOKIE[“cookiename”]或者$HTTP_COOKIE_VARS[“cookiename”](不提倡使用)

1.注意:

如果网站有几个不同的文件目录,使用不带路径的cookie,那么只能在设置cookie的文件所在路径下访问到此cookie。如果指定路径,则按照设置时的路径作为访问cookie的指定路径。

创建cookie数组:

1.其一:

 代码如下

setcookie("CookieArray[0]","Value1");
setcookie("CookieArray[1]","Value2");

1.其二:

代码如下

setcookie("CookieArray['one']","Value1");
setcookie("CookieArray['two']","Value2");

1.setcookie()中使用数组

 代码如下

<?php
setcookie("cookie[three]","cookiethree");
setcookie("cookie[two]","cookietwo");
setcookie("cookie[one]","cookieone");
//刷新页面后,显示出来
if(isset($_COOKIE['cookie'])){
foreach($_COOKIE['cookie']as$name=>$value){
echo"$name:$value<br/>n";
}
}
?>

删除cookie

1.要删除一个已经存在的cookie,有两个办法:

1、调用只带有name参数的setcookie,那么名为这个name的cookie将被从客户机上删掉;
setcookie(“MyCookie”);//删除MyCookie 

2、期时间就行,那么这个Cookie在这个页面的浏览完之后就被删除了(其实是失效了)。

例如:

 代码如下

setcookie(“MyCookie”,”Value”,time()-1);

//删除MyCookie。

要注意:当一个Cookie被删除时,它的值在当前页仍然有效。如果要把cookie设置成在浏览器关闭后就失效。那么可以直接把expiretime设为0,或者不设置此值。

例如:setcookie(“name”,”value”,0)。

cookie注意事项

•1、setcookie()之前不能有任何html输出,就是空格,空白行都不行,必须在html文件的内容输出前设置

•2、setcookie()后,你在当前页调用echo$_COOKIE[“name”]不会有输出。必须刷新或到下一个页面才可以看到cookie值。

•3、不用浏览器对cookie处理不同。客户端可以禁用cookie,浏览器也会限制cookie的数量。一个浏览器能创建的cookie数量最多为300个,并且每个不能超过4KB,每个WEB站点能设置的cookie总数不能超过20个。

•4、cookie是保存在客户端的,用户禁用了cookie,你的cookie自然也就没作用啦!因此,避免过度依赖cookie,要先想好如果cookie被禁用时的解决方案,以备万一。

以上就是对 PHP cookie 资料的整理,有需要的朋友可以参考下。

PHP 相关文章推荐
Php+SqlServer实现分页显示
Oct 09 PHP
php中配置文件操作 如config.php文件的读取修改等操作
Jul 07 PHP
PHP设计模式之调解者模式的深入解析
Jun 13 PHP
ThinkPHP访问不存在的模块跳转到404页面的方法
Jun 19 PHP
2014年10个最佳的PHP图像操作库
Jul 14 PHP
PHP截取指定图片大小的方法
Dec 10 PHP
php使用fputcsv()函数csv文件读写数据的方法
Jan 06 PHP
PHP5.2下preg_replace函数的问题
May 08 PHP
php封装的连接Mysql类及用法分析
Dec 10 PHP
php array_pop 删除数组最后一个元素实例
Nov 02 PHP
Laravel 中创建 Zip 压缩文件并提供下载的实现方法
Apr 02 PHP
php7 参数、整形及字符串处理机制修改实例分析
May 25 PHP
Yii2针对指定url的生成及图片等的引入方法小结
Jul 18 #PHP
图文详解PHP环境搭建教程
Jul 16 #PHP
Yii调试查看执行SQL语句的方法
Jul 15 #PHP
PHP中FTP相关函数小结
Jul 15 #PHP
Yii数据模型中rules类验证器用法分析
Jul 15 #PHP
Yii控制器中filter过滤器用法分析
Jul 15 #PHP
Yii编程开发常见调用技巧集锦
Jul 15 #PHP
You might like
在“咖啡之国”感受咖啡文化
2021/03/03 咖啡文化
PHP实现的功能是显示8条基色色带
2006/10/09 PHP
记录PHP错误日志 display_errors与log_errors的区别
2012/10/09 PHP
mod_php、FastCGI、PHP-FPM等PHP运行方式对比
2015/07/02 PHP
php实现跨域提交form表单的方法【2种方法】
2016/10/17 PHP
JavaScript监测ActiveX控件是否已经安装过的代码
2008/09/02 Javascript
ExtJS GridPanel 根据条件改变字体颜色
2010/03/08 Javascript
javascript移动设备Web开发中对touch事件的封装实例
2014/06/05 Javascript
jQuery实现伪分页的方法分享
2016/02/17 Javascript
前端js文件合并的三种方式推荐
2016/05/19 Javascript
详谈JS中数组的迭代方法和归并方法
2017/08/11 Javascript
layui实现动态和静态分页
2018/04/28 Javascript
解决vue点击控制单个样式的问题
2018/09/05 Javascript
如何获取vue单文件自身源码路径
2019/05/06 Javascript
vue实现防抖的实例代码
2021/01/11 Vue.js
[01:37]DOTA2超级联赛专访ChuaN 传奇般的电竞之路
2013/06/19 DOTA
[01:12:08]LGD vs OG 2019国际邀请赛淘汰赛 胜者组 BO3 第一场 8.24
2019/09/10 DOTA
对于Python装饰器使用的一些建议
2015/06/03 Python
Python+微信接口实现运维报警
2016/08/27 Python
Python 专题六 局部变量、全局变量global、导入模块变量
2017/03/20 Python
python 求10个数的平均数实例
2019/12/16 Python
深入浅析python 中的self和cls的区别
2020/06/20 Python
浅谈django框架集成swagger以及自定义参数问题
2020/07/07 Python
HTML5注册页面示例代码
2014/03/27 HTML / CSS
wordpress添加Html5的表单验证required方法小结
2020/08/18 HTML / CSS
Weblogc domain问题
2014/01/27 面试题
高级人员简历的自我评价分享
2013/11/03 职场文书
电子信息专业学生自荐信
2013/11/09 职场文书
安全大检查反思材料
2014/01/31 职场文书
《台湾的蝴蝶谷》教学反思
2014/02/20 职场文书
学生手册评语
2014/05/05 职场文书
爱护公共设施演讲稿
2014/09/13 职场文书
2014入党积极分子批评与自我批评思想汇报
2014/09/20 职场文书
挂职个人工作总结
2015/03/05 职场文书
暑期工社会实践报告
2015/07/13 职场文书
ubuntu如何搭建vsftpd服务器
2022/12/24 Servers