php cookie工作原理与实例详解

在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 资料的整理,有需要的朋友可以参考下。

(0)

相关推荐

  • 浅谈PHP Cookie处理函数

    (o゜▽゜)o☆[BINGO!] ok,我们先看看cookie是什么东东? cookie是服务器留在客户端的用于识别用户或者存储一些数据的小文件(注意,session存储在服务器端,这是两者的区别之一).我们平时登录某门户时,会有选项"是否保存登录"或者"下次自动登录",当我们勾选了之后,服务器就会在我们的浏览器创建cookie文件来保存我们的信息.每当计算机通过浏览器请求页面时,它会同时发送cookie.通过PHP,可以创建并取回cookie的值.cookie在w

  • php通过curl添加cookie伪造登陆抓取数据的方法

    本文实例讲述了php通过curl添加cookie伪造登陆抓取数据的方法.分享给大家供大家参考,具体如下: 有的网页必须登陆才能看到,这个时候想要抓取信息必须在header里面传递cookie值才能获取 1.首先登陆网站,打开firebug就能看到对应的cookie把这些cookie拷贝出来就能使用了 2. <?php header("Content-type:text/html;Charset=utf8"); $ch =curl_init(); curl_setopt($ch,C

  • PHP中SSO Cookie登录分析和实现

    什么是SSO? 单点登录SSO(Single Sign-On)是身份管理中的一部分.SSO的一种较为通俗的定义是:SSO是指访问同一服务器不同应用中的受保护资源的同一用户,只需要登录一次,即通过一个应用中的安全验证后,再访问其他应用中的受保护资源时,不再需要重新登录验证 SSO的用途: 目前的企业应用环境中,往往有很多的应用系统,淘宝.天猫.爱淘宝等等产品和如办公自动化(OA)系统,财务管理系统,档案管理系统,信息查询系统等等.这些应用系统服务于企业的信息化建设,为企业带来了很好的效益.但是,用

  • PHP根据session与cookie用户登录状态操作类的代码

     1.用户登录状态操作类UserLogin <?php final class UserLogin { public function __construct() { } public static function getUserInfo() { if (isset($_COOKIE["user_id"])&&$_COOKIE["user_id"]&&(trim($_COOKIE["user_id"])!=

  • PHP基于cookie与session统计网站访问量并输出显示的方法

    本文实例讲述了PHP基于cookie与session统计网站访问量并输出显示的方法.分享给大家供大家参考,具体如下: <?php $f_open = fopen("count.txt","r+"); //打开指定的文件 $count = fgets($f_open); //读取文件中的数据 if(empty($_COOKIE['cookie_name'])){ //判断COOKIE的是否存在 setcookie("cookie_name",

  • 详解PHP中cookie和session的区别及cookie和session用法小结

    具体来说 cookie 是保存在"客户端"的,而session是保存在"服务端"的 cookie 是通过扩展http协议实现的 cookie 主要包括 :名字,值,过期时间,路径和域: 如果cookie不设置生命周期,则以浏览器关闭而关闭,这种cookie一般存储在内存而不是硬盘上.若设置了生命周期则相反,不随浏览器的关闭而消失,这些cookie仍然有效直到超过设定的过 期 时间. session 一种类似散列表的形式保存信息, 当程序需要为某个客户端的请求创建一个

  • php同时使用session和cookie来保存用户登录信息的实现代码

    1.用户登录状态操作类UserLogin <?php final class UserLogin { public function __construct() { } public static function getUserInfo() { if (isset($_COOKIE["user_id"])&&$_COOKIE["user_id"]&&(trim($_COOKIE["user_id"])!=&

  • php用户登录之cookie信息安全分析

    本文实例讲述了php用户登录之cookie信息安全.分享给大家供大家参考,具体如下: 大家都知道用户登陆后,用户信息一般会选择保存在cookie里面,因为cookie是保存客户端,并且cookie可以在客户端用浏览器自由更改,这样将会造成用户cookie存在伪造的危险,从而可能使伪造cookie者登录任意用户的账户. 下面就说说平常一些防止用户登录cookie信息安全的方法: 一.cookie信息加密法 cookie信息加密法即用一种加密方法,加密用户信息,然后在存入cookie,这样伪造者即使

  • php cookie工作原理与实例详解

    在php 中cookie是我们常用到的,但是可能很多朋友都不知道cookie是怎么工作的,下面小编来给大家整理一下关于php cookie 工作原理与一些对于cookie读写操作实例. Cookie和会话状态 做BS开发,这两个概念必不可少,先来个大概了解,没有实际应用很难深入,深入看参考地址! 什么是 Cookie? Cookie 是一小段文本信息,伴随着用户请求和页面在 Web 服务器和浏览器之间传递.用户每次访问站点时,Web 应用程序都可以读取 Cookie 包含的信息. Cookie

  • javascript原型继承工作原理和实例详解

    先为大家分享JS原型继承实例,供大家参考,具体内容如下 一.JS原型继承 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>JS原型继承</title> </head> <body> <!--原型继承--> <script type="text/javascript"> //cl

  • Spring IOC和aop的原理及实例详解

    这篇文章主要介绍了Spring IOC和aop的原理及实例详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架.特点是面向接口编程,松耦合. 1:IOC(控制反转) 别名(DI:依赖注入) 首先来一段ioc的实现原来代码: public class ClassPathXmlApplicationContext implements BeanFactory { privat

  • Python 异步协程函数原理及实例详解

    这篇文章主要介绍了Python 异步协程函数原理及实例详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 一. asyncio 1.python3.4开始引入标准库之中,内置对异步io的支持 2.asyncio本身是一个消息循环 3.步骤: (1)创建消息循环 (2)把协程导入 (3)关闭 4.举例: import threading # 引入异步io包 import asyncio # 使用协程 @ asyncio.coroutine def

  • Java Linkedlist原理及实例详解

    这篇文章主要介绍了Java Linkedlist原理及实例详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 定义:linkedlist属于链表结构,方便添加和删除元素,但查询不方便,适用于对收尾的操作. 具有具体的对象,使用对象调用具体的方法 add // 添加元素 //在中间添加元素 arr.add("H"); addFirst:在集合最前面添加元素 // 在链表头部添加元素 arr.addFirst("F")

  • Java8默认方法Default Methods原理及实例详解

    这篇文章主要介绍了Java8默认方法Default Methods原理及实例详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 Java 8 引入了新的语言特性--默认方法(Default Methods). Default methods enable new functionality to be added to the interfaces of libraries and ensure binary compatibility wit

  • Java打印流原理及实例详解

    这篇文章主要介绍了Java打印流原理及实例详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 平时我们在控制台打印输出,是调用print方法和println方法完成的,这两个方法都来自于java.io.PrintStream类,该类能够方便地打印各种数据类型的值,是一种便捷的输岀方式. PrintStream类 PrintStream类,为其他输出流添加了功能,使他们能够方便的打印各种数据值表示格式. PrintStream类的特点: 只负责数

  • python模式 工厂模式原理及实例详解

    这篇文章主要介绍了python模式 工厂模式原理及实例详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 工厂模式是一个在软件开发中用来创建对象的设计模式. 工厂模式包涵一个超类.这个超类提供一个抽象化的接口来创建一个特定类型的对象,而不是决定哪个对象可以被创建. 为了实现此方法,需要创建一个工厂类创建并返回. 当程序运行输入一个"类型"的时候,需要创建于此相应的对象.这就用到了工厂模式.在如此情形中,实现代码基于工厂模式,可以达到可

  • SpringBoot Starter依赖原理与实例详解

    目录 1 Starter 2 了解 spring.factories机制 2.1 不同包路径下的依赖注入 2.2 spring.factories 机制 3 spring.factories 机制的实现源码分析 4 程序运行入口run() 1 Starter 在开发 SpringBoot 项目的时候,我们常常通过 Maven 导入自动各种依赖,其中很多依赖都是以 xxx-starter 命名的. 像这种 starter 依赖是怎么工作的呢? 2 了解 spring.factories机制 导入一

  • Redis 实现队列原理的实例详解

    Redis 实现队列原理的实例详解 场景说明: ·用于处理比较耗时的请求,例如批量发送邮件,如果直接在网页触发执行发送,程序会出现超时 ·高并发场景,当某个时刻请求瞬间增加时,可以把请求写入到队列,后台在去处理这些请求 ·抢购场景,先入先出的模式 命令: rpush + blpop 或 lpush + brpop rpush : 往列表右侧推入数据 blpop : 客户端阻塞直到队列有值输出 简单队列: simple.php $stmt = $pdo->prepare('select id, c

随机推荐