php setcookie值为null或空字符串删除cookie解析_PHP教程

WBOY
Lepaskan: 2016-07-13 10:57:03
asal
1036 orang telah melayarinya

很多朋友在使用setcookie设置值为空或NULL时系统会自动把cookie给删除掉,下面我来给大家分析cookie值为null或空字符串删除cookie原因吧,有需要学习的朋友可参考。

官方文档中也是这样写的:


#2 setcookie() delete example

 代码如下 复制代码

// set the expiration date to one hour ago
setcookie ("TestCookie", "", time() - 3600);
setcookie ("TestCookie", "", time() - 3600, "/~rasmus/", "example.com", 1);
?>

今天遇到一件奇怪的事, 在setcookie的时候,传了一个空字符串给$value,结果竟然是此cookie被删除了…

 代码如下 复制代码

$name = "post_url";
$value =  "";
setcookie($name, $value,  time()+60*60*3, "/" );

去翻php 5.4.13 的源码结果得知

参数中的value在C语言中的类型是char * , 还有一个 value_len标明了它的长度。
如果value_len为0的话,就写了下面的cookie:
值为”deleted”, 过期时间为 Thu, 01-Jan-1970 08:00:01 CST 或者说是 Thu, 01-Jan-1970 00:00:01 GMT

看来setcookie($name, “”) 确实可以删除这个cookie了…
同理,在php中,strval(NULL) === “” , 所以 setcookie($name, NULL) 也就相当于 setcookie($name, “”),同样可以删除此cookie.

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/632123.htmlTechArticle很多朋友在使用setcookie设置值为空或NULL时系统会自动把cookie给删除掉,下面我来给大家分析cookie值为null或空字符串删除cookie原因吧,有需要...
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan