最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

php 刪除cookie方法詳解

 更新時(shí)間:2014年12月01日 10:39:14   投稿:hebedich  
本文簡(jiǎn)單介紹了關(guān)于php刪除cookie的方法,就是設(shè)置cookie有效期或者為空,非常實(shí)用的小技巧,這里推薦給大家。

我們先來(lái)看下相關(guān)cookie的機(jī)制。

復(fù)制代碼 代碼如下:

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

要?jiǎng)h除cookie需要確保它的失效期是在過(guò)去,才能觸發(fā)瀏覽器的刪除機(jī)制。

下面的例子說(shuō)明了如何刪除剛才設(shè)置的cookie:

復(fù)制代碼 代碼如下:

<?php
//將過(guò)期時(shí)間設(shè)為一小時(shí)前
setcookie("TestCookie", "", time() - 3600);
setcookie("TestCookie", "", time() - 3600, "/~rasmus/", ".utoronto.ca", 1);
?>

刪除一個(gè)cookie的方法就是把這個(gè)cookie的有效期設(shè)置為當(dāng)前時(shí)間以前,這也是幾乎所有php程序員都會(huì)這么做。

后來(lái)一個(gè)初接觸php的朋友告訴我,他在程序中本想把一個(gè)cookie的值設(shè)置為空,結(jié)果導(dǎo)致這個(gè)cookie直接被刪除。我當(dāng)時(shí)的第一反應(yīng)是不相信,于是測(cè)試
了一下:

復(fù)制代碼 代碼如下:

setcookie("testcookie", '');
print_r($_COOKIE);

結(jié)果果然是整個(gè)$_COOKIE數(shù)組都是空的,而非僅僅$_COOKIE['testcookie']為空。于是用winsock抓包,觀察返回的http頭,發(fā)現(xiàn)http頭竟然是“Set-Cookie: testcookie=deleted; expires=Mon, 18-Jun-2007 02:42:33 GMT”,這說(shuō)明“setcookie("testcookie", '');”的的確確是將testcookie這個(gè)cookie直接刪除,而關(guān)于這種情況在php手冊(cè)中完全沒(méi)有說(shuō)明。

最后閱讀php源碼,終于發(fā)現(xiàn)真相(這就是開(kāi)源的好處了,有什么不清楚的內(nèi)幕,直接查源碼)。

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

復(fù)制代碼 代碼如下:

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)”,當(dāng)“value_len”為0時(shí),“sprintf(cookie, "Set-Cookie: %s=deleted; expires=%s", name, dt);”會(huì)發(fā)送刪除cookie的http頭給瀏覽器。

最后我們可以得出結(jié)論:在php中使用“setcookie($cookiename, '');”或者“setcookie($cookiename, NULL);”都會(huì)刪除cookie,當(dāng)然這些手冊(cè)中并沒(méi)有。

是不是很簡(jiǎn)單呢,有時(shí)候我們還是非常有必要好好讀讀php源碼的。

相關(guān)文章

  • PHP fgetcsv 定義和用法(附windows與linux下兼容問(wèn)題)

    PHP fgetcsv 定義和用法(附windows與linux下兼容問(wèn)題)

    PHP fgetcsv() 函數(shù)從文件指針中讀入一行并解析 CSV 字段。與PHP fgets() 類(lèi)似,不同的是 PHP fgetcsv() 解析讀入的行并找出 CSV 格式的字段,然后返回一個(gè)包含這些字段的數(shù)組
    2012-05-05
  • php中錯(cuò)誤處理操作實(shí)例分析

    php中錯(cuò)誤處理操作實(shí)例分析

    這篇文章主要介紹了php中錯(cuò)誤處理操作,結(jié)合實(shí)例形式分析了php錯(cuò)誤的觸發(fā)、處理、日志記錄等相關(guān)操作技巧,需要的朋友可以參考下
    2019-08-08
  • 洪恩在線成語(yǔ)詞典小偷程序php版

    洪恩在線成語(yǔ)詞典小偷程序php版

    去年在學(xué)習(xí)用php做小偷程序時(shí)的一個(gè)練習(xí)之作,希望能給有同樣需求的朋友帶來(lái)些幫助,程序主要流程是獲取洪恩在線的成語(yǔ)詞典查詢結(jié)果并在當(dāng)前頁(yè)面顯示出來(lái)(俗稱小偷程序),使用語(yǔ)言為php
    2012-04-04
  • php 啟動(dòng)時(shí)報(bào)錯(cuò)的簡(jiǎn)單解決方法

    php 啟動(dòng)時(shí)報(bào)錯(cuò)的簡(jiǎn)單解決方法

    php啟動(dòng)時(shí)報(bào)錯(cuò)的情況,想必很多朋友都有遇到吧,下面為大家介紹下比較不錯(cuò)的解決方法
    2014-01-01
  • PHP實(shí)現(xiàn)的激活用戶注冊(cè)驗(yàn)證郵箱功能示例

    PHP實(shí)現(xiàn)的激活用戶注冊(cè)驗(yàn)證郵箱功能示例

    這篇文章主要介紹了PHP實(shí)現(xiàn)的激活用戶注冊(cè)驗(yàn)證郵箱功能,詳細(xì)分析了php郵件激活用戶所涉及的數(shù)據(jù)庫(kù)、郵件相關(guān)操作技巧,需要的朋友可以參考下
    2017-06-06
  • Eclipse的PHP插件PHPEclipse安裝和使用

    Eclipse的PHP插件PHPEclipse安裝和使用

    PHP有很多相當(dāng)不錯(cuò)的開(kāi)發(fā)工具,如Zend Studio、NetBeans、phpdesigner等,但對(duì)于習(xí)慣Java編程的程序猿們來(lái)說(shuō),最常用的還要屬Eclipse。那么Eclipse能用于PHP開(kāi)發(fā)嗎?答案是“必須滴”。
    2014-07-07
  • 淺談PHP強(qiáng)制類(lèi)型轉(zhuǎn)換,慎用!

    淺談PHP強(qiáng)制類(lèi)型轉(zhuǎn)換,慎用!

    本篇文章是對(duì)PHP強(qiáng)制類(lèi)型轉(zhuǎn)換慎用進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06
  • PHP APC配置文件2套和參數(shù)詳解

    PHP APC配置文件2套和參數(shù)詳解

    這篇文章主要介紹了PHP APC配置文件2套和參數(shù)詳解,需要的朋友可以參考下
    2014-06-06
  • PHP超全局變量實(shí)現(xiàn)原理及代碼解析

    PHP超全局變量實(shí)現(xiàn)原理及代碼解析

    這篇文章主要介紹了PHP超全局變量實(shí)現(xiàn)原理及代碼解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-09-09
  • PHP實(shí)現(xiàn)的瀏覽器檢查類(lèi)

    PHP實(shí)現(xiàn)的瀏覽器檢查類(lèi)

    這篇文章主要介紹了PHP實(shí)現(xiàn)的瀏覽器檢查類(lèi),結(jié)合實(shí)例形式詳細(xì)分析了PHP瀏覽器操作的相關(guān)技巧,非常簡(jiǎn)單實(shí)用,需要的朋友可以參考下
    2016-04-04

最新評(píng)論

金坛市| 双柏县| 边坝县| 凤庆县| 慈溪市| 东明县| 香河县| 顺昌县| 冕宁县| 佛冈县| 博兴县| 津市市| 琼结县| 钟祥市| 海晏县| 洪洞县| 灵台县| 平泉县| 措勤县| 东明县| 元氏县| 卢龙县| 宾川县| 江陵县| 获嘉县| 大余县| 阳城县| 东兰县| 枝江市| 合水县| 含山县| 抚远县| 和静县| 措美县| 汪清县| 古丈县| 庐江县| 保康县| 亚东县| 景谷| 利津县|