热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

phpcookie工作原理与cookie实例详解

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

在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);

接收和处理COOKIE

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

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

创建COOKIE数组:

其一,代码如下:

setCOOKIE("COOKIEArray[0]","Value1");

setCOOKIE("COOKIEArray[1]","Value2");

其二,代码如下:

setCOOKIE("COOKIEArray['one']","Value1");
 

setCOOKIE("COOKIEArray['two']","Value2");

setCOOKIE()中使用数组,代码如下:

  1. setCOOKIE("COOKIE[three]","COOKIEthree"); 
  2. setCOOKIE("COOKIE[two]","COOKIEtwo"); 
  3. setCOOKIE("COOKIE[one]","COOKIEone"); 
  4. //刷新页面后,显示出来 
  5. if(isset($_COOKIE['COOKIE'])){ 
  6. foreach($_COOKIE['COOKIE']as$name=>$value){ 
  7. echo"$name:$value
    n"
  8. ?> 

删除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被禁用时的解决方案,以备万一.


推荐阅读
  • 实现Win10与Linux服务器的SSH无密码登录
    本文介绍了如何在Windows 10环境下使用Git工具,通过配置SSH密钥对,实现与Linux服务器的无密码登录。主要步骤包括生成本地公钥、上传至服务器以及配置服务器端的信任关系。 ... [详细]
  • Windows环境下Oracle数据库迁移实践
    本文详细记录了一次在Windows操作系统下将Oracle数据库的控制文件、数据文件及在线日志文件迁移至外部存储的过程,旨在为后续的集群环境部署做好准备。 ... [详细]
  • PHP中Smarty模板引擎自定义函数详解
    本文详细介绍了如何在PHP的Smarty模板引擎中自定义函数,并通过具体示例演示了这些函数的使用方法和应用场景。适合PHP后端开发者学习。 ... [详细]
  • 页面预渲染适用于主要包含静态内容的页面。对于依赖大量API调用的动态页面,建议采用SSR(服务器端渲染),如Nuxt等框架。更多优化策略可参见:https://github.com/HaoChuan9421/vue-cli3-optimization ... [详细]
  • 本文探讨了当通过Nginx访问网站时出现504 Gateway Timeout错误的解决方案,特别是当请求处理时间超过30秒时的情况。文章提供了调整PHP-FPM配置的具体步骤,以延长请求超时时间。 ... [详细]
  • egg实现登录鉴权(七):权限管理
    权限管理包含三部分:访问页面的权限,操作功能的权限和获取数据权限。页面权限:登录用户所属角色的可访问页面的权限功能权限:登录用户所属角色的可访问页面的操作权限数据权限:登录用户所属 ... [详细]
  • 本文介绍了用户界面(User Interface, UI)的基本概念,以及在iOS应用程序中UIView及其子类的重要性和使用方式。文章详细探讨了UIView如何作为用户交互的核心组件,以及它与其他UI控件和业务逻辑的关系。 ... [详细]
  • 本文探讨了线性表中元素的删除方法,包括顺序表和链表的不同实现策略,以及这些策略在实际应用中的性能分析。 ... [详细]
  • 本文由chszs撰写,详细介绍了Apache Mina框架的核心开发流程及自定义协议处理方法。文章涵盖从创建IoService实例到协议编解码的具体步骤,适合希望深入了解Mina框架应用的开发者。 ... [详细]
  • 本文介绍了使用Python和C语言编写程序来计算一个给定数值的平方根的方法。通过迭代算法,我们能够精确地得到所需的结果。 ... [详细]
  • Canopy环境安装与使用指南
    《利用Python进行数据分析》一书推荐使用EPDFree版本的环境,然而随着技术的发展,目前更多人倾向于使用Canopy。本文将详细介绍Canopy的安装及使用方法。 ... [详细]
  • 本文提供了一个关于AC自动机(Aho-Corasick Algorithm)的详细解析与实现方法,特别针对P3796题目进行了深入探讨。文章不仅涵盖了AC自动机的基本概念,还重点讲解了如何通过构建失败指针(fail pointer)来提高字符串匹配效率。 ... [详细]
  • 本报告记录了嵌入式软件设计课程中的第二次实验,主要探讨了使用KEIL V5开发环境和ST固件库进行GPIO控制及按键响应编程的方法。通过实际操作,加深了对嵌入式系统硬件接口编程的理解。 ... [详细]
  • 本文分享了作者在使用LaTeX过程中的几点心得,涵盖了从文档编辑、代码高亮、图形绘制到3D模型展示等多个方面的内容。适合希望深入了解LaTeX高级功能的用户。 ... [详细]
  • LeetCode 102 - 二叉树层次遍历详解
    本文详细解析了LeetCode第102题——二叉树的层次遍历问题,提供了C++语言的实现代码,并对算法的核心思想和具体步骤进行了深入讲解。 ... [详细]
author-avatar
手机用户2502919063
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有