php cookie如何清除如何清除PHP cookies,php cookie的清除方法:首先,创建一个php样本文件;然后创建一个cookie通过setcookie最后通过“setcookie (‘test ‘,”,time()-3600);”方法清除创建的cookie。
推荐:《PHP视频教程》
这种方法适用于任何品牌的计算机。
PHP清除COOKIE,PHP无法删除COOKIE?
设置COOKIE有效期和COOKIE过期时间
PHP手册上说:
PHP透明支持HTTP cookie。Cookie是一种在远程浏览器中存储数据以及跟踪和识别用户的机制。可以使用setcookie()或setrawcookie()函数设置cookie。Cookie是HTTP头的一部分,所以在其他信息输出到浏览器之前必须调用setcookie()函数,类似于对header()函数的限制。
setcookie():
要删除一个cookie (stringname [,stringvalue [,intex fire[,stringpath [,stringdomain [,boolsecure]]]]),在触发浏览器的删除机制之前,需要确保其到期日期在过去。
删除cookie的方法是在当前时间之前设置它的有效性,这是几乎所有php程序员都会做的。
例如:
setcookie(‘test ‘,’ true ‘,time()3600);//创建cookie
setcookie(‘test ‘,”,time()-3600);//清除创建的cookie========================================================================。
If直接setcookie(‘test ‘,’ ‘);
print _ r($ _ COOKIE);结果是整个$_COOKIE数组都是空的,而不仅仅是$_COOKIE[‘testcookie’]。于是用winsock抓取数据包,观察返回的http头,发现http头原来是
set-Cookie : test cookie=已删除;Expires=mon,18-jun-200702336042336033 GMT这意味着setcookie(‘testcookie ‘,’ ‘);testcookie被直接删除是真的,但是这种情况在php手册中根本没有解释。
最后,我阅读了php源代码,终于发现了真相(这是开源的好处,如果有什么不清楚的内幕,直接查看源代码)
下面的代码可以在php5.20的linux源码包中的ext/standard/head.c第99行附近找到。
if (value value_len==0) {
time _ t t=time(NULL)-31536001;
dt=php_format_date(‘D,d-M-Y H:i:s T ‘,sizeof(‘D,d-M-Y H:i:s T’)-1,T,0 TSRMLS _ CC);
sprintf(cookie,’ Set-Cookie :% s=已删除;expires=%s ‘,名称,dt);
ef REE(dt);
} else {
sprintf(cookie,’ Set-Cookie: %s=%s ‘,名称,值?encoded _ value : ‘ ‘);
if(过期0) {
strcat(cookie,’;expires=’);
dt=php_format_date(‘D,d-M-Y H:i:s T ‘,sizeof(‘D,d-M-Y H:i:s T’)-1,expires,0 TSRMLS _ CC);
strcat(cookie,dt);
ef REE(dt);
{}
}源代码中明确显示,如果(value_len==0),当value_len为0时,
当.的时候
sprintf(cookie,’ Set-Cookie :% s=已删除;expires=%s ‘,名称,dt);将删除cookie的http头发送到浏览器。
最后,我们可以得出结论,在php中使用
setcookie($ cookiename ‘ ‘);或者setcookie($cookiename,NULL);会删除cookie,这些都不在这些手册里。
===============================================================
无法删除/清除过期的php cookie?
今天,Cookie被用来登录网站用户。调试后,使用
setcookie(‘username ‘,’ username ‘,time() 1000,’/PHP 100/’);保存用户的登录信息,然后使用
setcookie(‘username ‘,”,time()-3600);做退出,IE下测试没问题。既然你是网站,人,你应该兼容尽可能多的浏览器,呵呵。于是我在Firefox上测试了一下,上线的时候一切正常。怎么不会退出,用户总是登录。然后我查了一下IE和Firefox里记录的区别,经过测试,突然意识到。
本来如果没有指定setcookie()的第四个参数(合法路径参数),默认会把当前目录作为合法路径,我测试的路径是:http://127 . 0 . 0 . 1/PHP/rss2fra/data/log . PHP,所以登录和退出时设置的cookie路径是不一样的。
IE比FireFox更人性化,呵呵,美国指定路径的时候会覆盖当前IP下同名的Cookie变量,但是Firefox更严格,导致一个变量的重构.以上是如何清除php cookie的细节,请多关注Lei.com其他关于php知识的相关文章!