PHP删除cookie方法详细解决方案
让我们先看看相关cookie的机制。复制代码代码如下所示:
布尔setcookie(字符串名称的字符串值{,{,{ int到期,字符串路径} {,}字符串域
要删除cookie,您需要确保它的有效期在过去触发浏览器的删除机制。
下面的示例演示如何删除刚刚建立的cookie:
复制代码代码如下所示:
< PHP
设置时间为一小时前
setcookie(testcookie
setcookie(testcookie
>
删除cookie的方法是将cookie的有效性设置为当前时间,这几乎是所有PHP程序员所做的。
一位后来接触PHP的朋友告诉我,他想在程序中设置cookie的值,结果直接删除了cookie,我的第一反应是不相信,所以测试。
一点点:
复制代码代码如下所示:
setcookie(testcookie
print_r($ _cookie);
结果是,整个_cookie美元数组是空的,不只是_cookie美元{ 'testcookie},然后使用Winsock捕获HTTP头,观察后,发现原来是HTTP头设置cookie:testcookie =删除;到期=一18-jun-2007,02:42:33 GMT的setcookie(testcookie
最后,阅读PHP源代码,最后发现真相(这是开源的,好处是什么都不清楚,直接查元玛)。
下面的代码可以找到附近的EXT /标准/头。在php5.20 Linux源码包C第九十九线:
复制代码代码如下所示:
如果(价值value_len = = 0){
*
* MSIE不删除Cookie时你将它设置为null
*为了迫使饼干被删除,甚至在MSIE,
*选择1年和1秒的到期日。
* /
time_t T =时间(空)- 31536001;
DT = php_format_date(D,d-m-y H:我:S T
sprintf(cookie,设置cookie:%s =删除;到期= %s
依芙利特(DT);
{人}
sprintf(cookie,设置cookie:%s为%s
如果(过期> 0){
Strcat(cookie,;到期= );
DT = php_format_date(D,d-m-y H:我:S T
Strcat(cookie,DT);
依芙利特(DT);
}
}
如果清楚显示源代码(价值value_len = = 0),当value_len 0,sprintf(cookie,设置cookie的名字:,,% =删除;到期= %s DT);Cookie HTTP发送到浏览器删除页眉。
最后,我们可以得出结论,使用setcookie(cookiename美元,)在PHP中,或setcookie($ cookiename,null),将删除cookie,当然,没有这样的手册。
很简单吗有时很有必要阅读PHP源代码。