删去cookie方法详解,删除cookie有效方法

咱俩先来看下相关cookie的体制。

小编们先来看下相关cookie的编写制定。

 

php 删除cookie有效办法
删去cookie方法详解,删除cookie有效方法。有关删除cookie的印证开端—–

复制代码 代码如下:

bool setcookie ( string name [, string value [, int expire [, string
path [, string domain [, bool secure]]]]] )

php 删除cookie有效格局
至于删除cookie的验证开首—–

bool setcookie ( string name [, string value [, int expire [, string
path [, string domain [, bool secure]]]]] )

bool setcookie ( string name [, string value [, int expire [, string
path [, string domain [, bool secure]]]]] )

要删减cookie须要保险它的失效期是在过去,才干接触浏览器的去除机制。

bool setcookie ( string name [, string value [, int expire [, string
path [, string domain [, bool secure]]]]] )

要去除cookie须求保险它的失效期是在过去,才具接触浏览器的删减机制。

要刨除cookie需求保障它的失效期是在过去,技巧接触浏览器的删除机制。

上面包车型地铁例证表明了何等删除刚才设置的cookie:

要删减cookie要求保险它的失效期是在过去,技能接触浏览器的去除机制。

上面包车型大巴事例表达了何等删除刚才设置的cookie:
<?php
//将过期时间设为三小时前
setcookie(“TestCookie”, “”, time() – 3600);
setcookie(“TestCookie”, “”, time() – 3600, “/~rasmus/”, “.utoronto.ca”,
1);
?>

下边包车型客车事例表明了怎么删除刚才设置的cookie:

//将过期时间设为有小时前

下边包车型客车例证表达了怎样删除刚才设置的cookie:
<?php
//将过期岁月设为临小时前
setcookie(“TestCookie”, “”, time() – 3600);
setcookie(“TestCookie”, “”, time() – 3600, “/~rasmus/”, “.utoronto.ca”,
1);
?>

—–关于删除cookie的注明甘休—–

复制代码 代码如下:

setcookie(“TestCookie”, “”, time() – 3600);

—–关于删除cookie的表明甘休—–

除去八个cookie的主意正是把那一个cookie的保质期设置为最近时光从前,那也是大概全体php技师都会那样做。

<?php
//将过期日子设为一钟头前
setcookie(“TestCookie”, “”, time() – 3600);
setcookie(“TestCookie”, “”, time() – 3600, “/~rasmus/”, “.utoronto.ca”,
1);
?>

setcookie(“TestCookie”, “”, time() – 3600, “/~rasmus/”, “.utoronto.ca”,
1);

剔除二个cookie的办法就是把这一个cookie的有效期设置为近日时刻从前,那也是大概全体php程序员都会如此做。

新生贰个初接触php的相爱的人告诉自身,他在先后中本想把一个cookie的值设置为空,结果导致那些cookie直接被剔除。小编立刻的首先影响是不信任,于是测试
了一下:
setcookie(“testcookie”, ”);
print_r($_COOKIE);

删除二个cookie的主意正是把那几个cookie的保藏期设置为当前光阴从前,那也是大约全体php技术员都会这么做。

?>

新兴二个初接触php的仇人告诉本人,他在先后中本想把一个cookie的值设置为空,结酚酞致那个cookie直接被去除。小编当下的第一反应是不信赖,于是测量试验
了一下:
setcookie(“testcookie”, ”);
亚洲必赢官网 ,print_r($_COOKIE);

结果果然是漫天$_CEOKIE数组皆以空的,而非仅仅$_COOKIE[‘testcookie’]为空。于是用winsock抓包,观察重回的http头,发掘http头竟然是“Set-Cookie:
testcookie=deleted; expires=Mon, 18-Jun-二〇〇六 02:42:33
克拉霉素T”,那表达“setcookie(“testcookie”,
”);”的的确确是将testcookie那么些cookie直接删除,而有关这种场馆在php手册中完全未有表达。

新生三个初接触php的爱人告知笔者,他在程序中本想把叁个cookie的值设置为空,结果变成那几个cookie直接被剔除。笔者当时的率先感应是不相信,于是测验
了一下:

去除二个cookie的艺术便是把这些cookie的保质期设置为当下光阴在此以前,那也是大概具有php工程师都会这么做。

结果果然是全方位$_老董KIE数组都以空的,而非仅仅$_COOKIE[‘testcookie’]为空。于是用winsock抓包,观看再次来到的http头,开采http头竟然是“Set-Cookie:
testcookie=deleted; expires=Mon, 18-Jun-二零零五 02:42:33
威他霉素T”,那注明“setcookie(“testcookie”,
”);”的的确确是将testcookie这一个cookie直接删除,而关于这种情形在php手册中完全未有认证。

末段阅读php源码,终于开采精神(那正是开源的裨益了,有怎么样不精晓的底牌,直接查源码)。

复制代码 代码如下:

新兴二个初接触php的仇敌告诉本身,他在先后中本想把一个cookie的值设置为空,结果导致这几个cookie直接被去除。小编当下的第一反应是不注重,于是测量检验了一晃:

最终阅读php源码,终于意识真相(那正是开源的功利了,有啥不清楚的根底,直接查源码)。

以下代码能够在php5.20的linux源码包中ext/standard/head.c第99行相近找到:
if (value && value_len == 0) {
    /*
     * MSIE doesn’t delete a cookie when you set it to a null value
     * so in order to force cookies to be deleted, even on MSIE, we
     * pick an expiry date 1 year and 1 second in the past
     */
    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=deleted; expires=%s”, name, dt);
    efree(dt);
} else {
    sprintf(cookie, “Set-Cookie: %s=%s”, name, value ? encoded_value :
“”);
    if (expires > 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);
        efree(dt);
    }
}

setcookie(“testcookie”, ”);
print_r($_COOKIE);

setcookie(“testcookie”, ”);

以下代码能够在php5.20的linux源码包中ext/standard/head.c第99行左近找到:
if (value && value_len == 0) {
    /*
     * MSIE doesn’t delete a cookie when you set it to a null value
     * so in order to force cookies to be deleted, even on MSIE, we
     * pick an expiry date 1 year and 1 second in the past
     */
    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=deleted; expires=%s”, name, dt);
    efree(dt);
} else {
    sprintf(cookie, “Set-Cookie: %s=%s”, name, value ? encoded_value :
“”);
    if (expires > 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);
        efree(dt);
    }
}

源码中明晰的显得“if (value && value_len ==
0)”,当“value_len”为0时,“sprintf(cookie, “Set-库克ie: %s=deleted;
expires=%s”, name, dt);”会发送删除cookie的http头给浏览器。

结果果然是总体$_首席试行官KIE数组都是空的,而非仅仅$_COOKIE[‘testcookie’]为空。于是用winsock抓包,观望再次来到的http头,开采http头竟然是“Set-Cookie:
testcookie=deleted; expires=Mon, 18-Jun-二〇〇七 02:42:33
卡那霉素T”,那表达“setcookie(“testcookie”,
”);”的的确确是将testcookie那个cookie直接删除,而至于这种景色在php手册中全然未有表明。

print_r($_COOKIE);

源码中清楚的呈现“if (value && value_len ==
0)”,当“value_len”为0时,“sprintf(cookie, “Set-Cookie: %s=deleted;
expires=%s”, name, dt);”会发送删除cookie的http头给浏览器。

谈起底我们能够得出结论:在php中运用“setcookie($cookiename,
”);”也许“setcookie($cookiename,
NULL);”都会删除cookie,当然这个手册中并从未。

终极阅读php源码,终于发掘精神(那正是开源的功利了,有怎样不通晓的底牌,直接查源码)。

结果果然是一切$_总老董KIE数组都以空的,而非仅仅$_COOKIE[‘testcookie’]为空。于是用winsock抓包,阅览再次来到的http头,开采http头竟然是“Set-Cookie:
testcookie=deleted; expires=Mon, 18-Jun-二零零七 02:42:33
维生霉素T”,那表达“setcookie(“testcookie”,
”);”的的确确是将testcookie这几个cookie间接删除,而关于这种意况在php手册中全然未有表明。

终极大家能够得出结论:在php中选拔“setcookie($cookiename,
”);”只怕“setcookie($cookiename,
NULL);”都会删除cookie,当然那个手册中并从未。

以下代码可以在php5.20的linux源码包中ext/standard/head.c第99行相近找到:

末段阅读php源码,终于发掘精神(那正是开源的益处了,有怎么着不清楚的虚实,直接查源码)。

来源:

复制代码 代码如下:

以下代码能够在php5.20的linux源码包中ext/standard/head.c第99行周边找到:

if (value && value_len == 0) {
    /*
     * MSIE doesn’t delete a cookie when you set it to a null value
     * so in order to force cookies to be deleted, even on MSIE, we
     * pick an expiry date 1 year and 1 second in the past
     */
    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=deleted; expires=%s”, name, dt);
    efree(dt);
} else {
    sprintf(cookie, “Set-Cookie: %s=%s”, name, value ? encoded_value :
“”);
    if (expires > 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);
        efree(dt);
    }
}

if (value && value_len == 0) {

源码中清楚的显得“if (value && value_len ==
0)”,当“value_len”为0时,“sprintf(cookie, “Set-Cookie: %s=deleted;
expires=%s”, name, dt);”会发送删除cookie的http头给浏览器。

/*

终一点都不小家能够得出结论:在php中选择“setcookie($cookiename,
”);”大概“setcookie($cookiename,
NULL);”都会删除cookie,当然那些手册中并未。

* MSIE doesn’t delete a cookie when you set it to a null value

是还是不是很轻巧吗,有的时候候大家依旧非常有至关重要好好读读php源码的。

* so in order to force cookies to be deleted, even on MSIE, we

你可能感兴趣的篇章:

  • php中cookie的行使方法
  • PHP
    CUTiguanL获取cookies模拟登陆的主意
  • PHP
    setcookie设置Cookie用法(及安装无效的难点)
  • PHP之CEOKIE援救详解
  • php cookie
    登陆验证示例代码
  • PHP会话调整:Session与Cookie详解
  • php跨域cookie共享使用方法
  • PHP读取CURAV4L模拟登陆时生成Cookie文件的章程
  • 在PHP中设置、使用、删除Cookie的减轻方法
  • PHP中Cookie的利用详解(轻巧易懂)

* pick an expiry date 1 year and 1 second in the past

*/

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=deleted; expires=%s”, name, dt);

efree(dt);

} else {

sprintf(cookie, “Set-Cookie: %s=%s”, name, value ? encoded_value : “”);

if (expires > 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);

efree(dt);

}

}

源码中明晰的显得“if (value && value_len ==
0)”,当“value_len”为0时,“sprintf(cookie, “Set-Cookie: %s=deleted;
expires=%s”, name, dt);”会发送删除cookie的http头给浏览器。

谈到底大家得以得出结论:在php中动用“setcookie($cookiename,
”);”或然“setcookie($cookiename,
NULL);”都会去除cookie,当然那些手册中并不曾。

网站地图xml地图