日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
phpcookie的清除方法-創(chuàng)新互聯(lián)

這篇文章主要介紹php cookie的清除方法,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!

成都創(chuàng)新互聯(lián)專注于企業(yè)成都全網(wǎng)營銷、網(wǎng)站重做改版、札達(dá)網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、H5網(wǎng)站設(shè)計(jì)商城開發(fā)、集團(tuán)公司官網(wǎng)建設(shè)、外貿(mào)網(wǎng)站制作、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為札達(dá)等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。

php cookie的清除方法:首先創(chuàng)建一個(gè)PHP示例文件;然后通過setcookie創(chuàng)建cookie;最后通過“setcookie('test','',time()-3600);”方法清除建立的cookie即可。

PHP清除COOKIE,PHP無法刪除COOKIE?

設(shè)置COOKIE有效期、COOKIE過期

PHP手冊(cè)中提到:

PHP 透明地支持 HTTP cookie。cookie 是一種在遠(yuǎn)程瀏覽器端儲(chǔ)存數(shù)據(jù)并以此來跟蹤和識(shí)別用戶的機(jī)制。可以用 setcookie() 或 setrawcookie() 函數(shù)來設(shè)置 cookie。cookie 是 HTTP 標(biāo)頭的一部分,因此 setcookie() 函數(shù)必須在其它信息被輸出到瀏覽器前調(diào)用,這和對(duì) header() 函數(shù)的限制類似。

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

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

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

例如:

setcookie('test','true',time()+3600); //創(chuàng)建cookie
setcookie('test','',time()-3600);   //清除建立的cookie

==================================================================================

如果直接setcookie("test", '');

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

這說明setcookie("testcookie", '');的的確確是將testcookie這個(gè)cookie直接刪除.而關(guān)于這種情況在php手冊(cè)中完全沒有說明.

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

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

if (value && value_len == 0) {
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è)中并沒有。

=====================================================================================

php cookie 無法刪除/清除過期?

今天利用 Cookie 做網(wǎng)站的用戶登錄,經(jīng)過調(diào)試,用

 setcookie("username", "username", time()+1000,"/php100/");

等儲(chǔ)存用戶的登錄信息,然后利用

setcookie("username", "", time()-3600);

做 退出,在IE下測試沒有任何問題。既然做網(wǎng)站,就要兼容盡可能多的瀏覽器,呵呵。于是在 Firefox 中測試,登陸一切正常,當(dāng) 推出時(shí),遇到了麻煩。怎么也不會(huì)退出,用戶總是在登錄狀態(tài)。于是查看了 IE、Firefox 中cookie記錄的區(qū)別,經(jīng)過測試,才恍然大悟。

原來如果沒有指定 setcookie() 的第四個(gè)參數(shù)(合法路徑參數(shù)),默認(rèn)會(huì)把當(dāng)前目錄作為合法路徑,而我測試的路徑為:http://127.0.0.1/php/rss2fla/data /log.php ,所以導(dǎo)致登陸和退出時(shí) 所設(shè)置的 cookie 路徑不同。

IE比Firefox要人性化,呵呵,當(dāng)美指定路徑時(shí),會(huì)覆蓋當(dāng)前 IP 下的同名Cookie變量,而FireFox比較嚴(yán)格了,導(dǎo)致又重新建了個(gè)變量……

以上是“php cookie的清除方法”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!


分享文章:phpcookie的清除方法-創(chuàng)新互聯(lián)
文章源于:http://www.dlmjj.cn/article/doddcs.html