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源代码。