Cookie 的运行机制以及常用规则
一 setCookie
bool setcookie ( string name [, string value [, int expire [, string path [, string domain [, bool secure]]]]] )
| 参数 | 说明 | 举例 |
|---|---|---|
| name | Cookie 的名字。 | 使用 $_COOKIE['cookiename'] 调用名为 cookiename 的 cookie。 |
| value | Cookie 的值。此值保存在客户端,不要用来保存敏感数据。 | 假定 name 是 'cookiename',可以通过 $_COOKIE['cookiename'] 取得其值。 |
| expire |
Cookie 过期的时间。这是个 Unix 时间戳,即从 Unix 纪元开始的秒数。换而言之, |
time()+60*60*24*30 将设定 cookie 30 天后失效。如果未设定,cookie 将会在会话结束后(一般是浏览器关闭)失效。 |
| path | Cookie 在服务器端的有效路径。 | 如果该参数设为 '/' 的话,cookie 就在整个 domain 内有效,如果设为 '/foo/',cookie 就只在 domain 下的 /foo/ 目录及其子目录内有效,例如 /foo/bar/。默认值为设定 cookie 的当前目录。 |
| domain | 该 cookie 有效的域名。 |
要使 cookie 能在如 example.com 域名下的所有子域都有效的话,该参数应该设为 '.example.com'。虽然 . 并不必须的,但加上它会兼容更多的浏览器。 如果该参数设为 www.example.com 的话,就只在 www 子域内有效。细节见 Cookie 规范中的 tail matching。 |
| secure |
指明 cookie 是否仅通过安全的 HTTPS 连接传送。当设成 TRUE 时, cookie 仅在安全的连接中被设置。默认值为 FALSE。 |
0 或 1 |
1、name 和 value 的值均为简单的字符串类型。

所以下面均为错误写法
$a=array(1,2) ; setcookie('num',$a);
$b=new (对象) ; setcookie('obj',$b);
Warning: setcookie() expects parameter 2 to be string(第二个参数为string)
(但是你却可以写上bool的 true, setcookie('num',true); 结果等同于 setcookie('num',1);但是极少这样使用。)
2、cookie的第三个参数,生存时间。
setcookie('host','www.xyulife.com',time()+3600);
上面这段代码是最基本的cookie代码,让我给大家解释一下。
当用户运行此文件时,执行setcookie函数。生成一个以键为'host' 值为'www.xyulife.com' 生存时间为3600秒的cookie文件,
此文件可供同域下的文件或者程序使用,3600秒之后此
setcookie('host','www.xyulife.com');
浏览器不会生成cookie文件,浏览器关闭则cookie失效,在此期间cookie会在浏览器缓存供开发者使用。
注意一个网站只会生成一个cookie文件,每个浏览器或不同的操作系统生存Cookie文件的地址有所不同,
xp IE内核的地址为C:\Documents and Settings\Administrator\Cookies,
至今我还未找到win7 firefox的cookie文件 ,网上说法很多,其中很多是有多所说的位置是缓存文件地址,并不是cookie文件地址,(如果谁找到了 麻烦留言告诉我)
如果你在本地有俩个文件 example 1.php 和2.php
分别写入 setcookie('a','aaa',time()+300)setcookie('b','aaa',time()+300)
那么客户端只会生成一个cookie文件 (针对一个浏览器),其它文件的Cookie操作会在这个Cookie文件的基础上进行修改增加或删除。
The Three
Cookie 的删除操作
setcookie('name','',time()-200);
setcookie('age','',time()-200);
如果你觉得上述删除麻烦,想一次性删除。你可以这样:
foreach($_COOKIE as $key => $val){
setcookie($key,'',time()-200);//可以一次性删除所以cookie
}
当这个cookie文件的cookie信息全部被删除后,cookie文件将被清除。
The Four
Cookie 的运行机制 。
现在又俩个文件,1.php 和2.php
1.php 代码
setcookie('name','wc',time()+3600);
2.php 代码
if(isset($_COOKIE['name'])){
echo $_COOKIE['name'];
}
我开始认为cookie的逻辑是这样的, 在1.php中设置了cookie,然后2.php想要取出cookie,所以2.php就去找cookie文件,并取出相对应的cookie。但是这种想法是错误的。
实际上逻辑是这样:
在1.php中设置了cookie,然后跳转的时候浏览器会在http 头 发送你所设置的cookie,并不是去cookie文件中去取,所以这样也就限制了cookie的大小和个数。
如果上诉有错误,请留言指出。
Cookie 的运行机制以及常用规则的更多相关文章
- 详解Struts1.x的运行机制及命名规则
Struts1.x 调用一个action的大致流程: 1)首先前端发送 *.do的一个action请求(通过点击表单提交按钮,js 事件等): 2)web.xml 文件通过 *.do 找到 Actio ...
- Java学习系列(一)Java的运行机制、JDK的安装配置及常用命令详解
俗话说:“十五的月亮十六圆”.那学习是不是也是如此呢?如果把月亮看成是我们的愿望,那十五便是我们所处的“高原期”,坚持迈过这个坎,我相信你的愿望终究会现实的.记得马云曾说:今天很残酷,明天更残酷,后天 ...
- 理解Cookie和Session机制(转)
目录[-] Cookie机制 什么是Cookie 记录用户访问次数 Cookie的不可跨域名性 Unicode编码:保存中文 BASE64编码:保存二进制图片 设置Cookie的所有属性 Cookie ...
- 关于cookie的文章(cookie与session机制)
会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话.常用的会话跟踪技术是Cookie与Session.Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端 ...
- 理解Cookie和Session机制
转载: 理解Cookie和Session机制 会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话.常用的会话跟踪技术是Cookie与Session.Cookie通过在客户端记录 ...
- Cookie和Session机制详解
会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话.常用的会话跟踪技术是Cookie与Session.Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端 ...
- 深入理解Cookie和Session机制
转载理解Cookie和Session机制 目录 Cookie机制什么是CookieCookie的不可跨域名性Unicode编码:保存中文BASE64编码:保存二进制图片设置Cookie的所有属性Coo ...
- cookie和session机制区别
会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话.常用的会话跟踪技术是Cookie与Session.Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端 ...
- 正确理解cookie和session机制原理
php中cookie和session是我们常用的两个变量了,一个是用户客户端的,一个用在服务器的但他们的区别与工作原理怎么样,下面我们一起来看看cookie和session机制原理吧. cookie和 ...
随机推荐
- mac下修改mysql登录密码
mysql版本5.7.9 在mac终端下修改mysql用户登录密码 终端命令如下: update mysql.user set authentication_string=PASSWORD(" ...
- Kinect For Windows V2开发日志一:开发环境的配置
算是正式进军Kinect了,前段时间学的东西现在就忘了,于是从此开始记录一下. 目前为止大部分的学习资料来自于Heresy的博客,写的非常优秀,清晰明了,十分感谢.开发语言为C++,应该会一直使用,但 ...
- 配置多个Log4net实例
应用场景: 控制软件工程拆分为多个子项目,在开发阶段希望每个子项目的日志是单独的.同时又希望日志统一集中定义在Tools(Tools为工具类项目,生成Tools.dll)下,而不是分散在各个子项目中. ...
- codeforces 590B B. Chip 'n Dale Rescue Rangers(二分+计算几何)
题目链接: B. Chip 'n Dale Rescue Rangers time limit per test 1 second memory limit per test 256 megabyte ...
- 51nod 平均数(二分+树状数组)
题目链接: 平均数 基准时间限制:4 秒 空间限制:131072 KB 分值: 80 LYK有一个长度为n的序列a. 他最近在研究平均数. 他甚至想知道所有区间的平均数,但是区间数目实在太多了. 为了 ...
- Hibernate学习小结
之前从事.net开发的三年经验里,我是用过EF.Microsoft Dynamic crm中集成的ORM以及上一家公司自主开发的ORM. 再接触Hibernate后,上手比较简单,但其提供了大量的接口 ...
- 【转】唱吧CEO陈华:创业四年,我积累的7点管理经验
现象级产品“唱吧”至今拥有令人羡慕的用户数量,3亿.而这一切,却用了短短不到四年时间.唱吧团队如何应对越来越复杂的市场变化:怎样用人,才能不断激励新老员工做出更棒的业绩:CEO陈华又如何用“下大雪”模 ...
- JavaScript:exec()方法的用法及说明
最近在看某知名js框架的源码,突然间发现自己对exec()方法竟然不太理解,然后就仔细的分析了一下这个方法 下面贴个exec()方法使用的代码出来 rquickExpr = /^(?:\s*(< ...
- php学习笔记7--php中的数组
php中的数组 1.数组的定义:显式方式:$arr = array(1,2,3,4,5); $arr1 = array('name'=>'dqrcsc','age'=>'24');隐式方式 ...
- JavaScript之放大镜效果
在网上也浏览过许多关于JavaScript放大镜效果的文章,有的代码解释得些隐晦难懂,看的我头有点晕晕的╮(╯﹏╰)╭,我的心情是这样的: 吐槽完了,我们动动小鼠标,当鼠标经过下面这张美女图片时就实现 ...