php中如何正确的删除cookies文件

php中关于cookie的操作有一个重要函数setcookie

函数原型如下:

bool setcookie ( string $name [, string $value [, int $expire = 0 [, string $path [, string$domain [, bool $secure = false [, bool $httponly = false ]]]]]] )

对其中的参数进行解释:

$name $value 是cookie中对应的键值对

$expire cookie过期的时间戳 ,当时间超出过期时间戳对应的cookie文件就会被客户端的浏览器删除。默认是0,当用户关闭浏览器的时候cookie文件对应被删除

$path cookie能被读取的服务器端脚本路径,指明$path路径下的脚本文件能读取这个cookie文件中的数据

$domain 指定服务器域名,默认是当前url中的(或者http header中的)HOST ,注意 example.com 与 www.example.com 是不一样的,www.example.com、abc.example.com、csdn.example.com等是二级域名,example.com是一级域名(www.example.com 常常会被浏览器解析成 example.com这样的一级域名)

$secure 是否是安全传输 安全传输是https协议

$httponly ---

对于一个客户端的cookie文件,对应一个domain一个文件,文件里面的每个键拥有的数据分别是 值、过期时间、可访问路径

如下图:



一个cookie值中path domain不一样对应的cookie项也是不一样的,如下

setcookie('name','fantasy','/a/');

setcookie('name','fantasy','/b/');

以上设置的cookie是不一样的两个项,因为path不同,(同样在删除项的时候也是不一样的)

以上基础知识之后开始解释如何删除一个客户端的cookie文件

删除一个cookie的依据是cookie文件为空(借助的是客户端浏览器,浏览器会删除过期的cookie项以及空的cookie文件)

1、设置一个cookie文件,文件中有两个值

$expire=0;
$path='/test/cookie/a/';
setcookie('name','fantasy',$expire,$path);
setcookie('age',32,$expire,$path);
2、清空cookie文件

$path='/test/cookie/a/';
setcookie('name','',time()-1,$path);
setcookie('age',null,time()-1,$path);
清空了cookie,浏览器就会将对应的cookie文件从客户端删除


-----------------------------------------大笑---------------------------------------------


例子1、脚本只能访问对应path下的cookie值


设置cookie 指定path为 /test/cookie/a/

$expire=0;
$path='/test/cookie/a/';
setcookie('name','fantasy',$expire,$path);
setcookie('age',32,$expire,$path);
创建4个文件 

1、/test/cookie/test.php

2、/test/cookie/a/test.php

3、/test/cookie/a/sub/test.php

4、/test/cookie/b/test.php

文件内容都是

print_r($_COOKIE);

显示结果:

文件2、3

Array ( [name] => fantasy [age] => 32 )

文件1、4

Array ( )


例子2、创建不同path的cookie值


setcookie('name','fantasy',0,'/test/cookie/a/');
setcookie('name','fantasy',0,'/test/cookie/b/');

看浏览器中的cookie文件:

                                  

不同path的cookie项是不同的尽管key val一样


所以在删除cookie文件的时候要把各个path下面的值全部置空来清空cookie文件,从而删除cookie文件







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值