通過(guò)前面的章節(jié),我們了解了設(shè)置cookie的函數(shù),但是我們卻發(fā)現(xiàn)php中沒(méi)有刪除Cookie的函數(shù),在PHP中刪除cookie也是采用setcookie函數(shù)來(lái)實(shí)現(xiàn)。
setcookie('test', '', time()-1);
可以看到將cookie的過(guò)期時(shí)間設(shè)置到當(dāng)前時(shí)間之前,則該cookie會(huì)自動(dòng)失效,也就達(dá)到了刪除cookie的目的。之所以這么設(shè)計(jì)是因?yàn)閏ookie是通過(guò)HTTP的標(biāo)頭來(lái)傳遞的,客戶端根據(jù)服務(wù)端返回的Set-Cookie段來(lái)進(jìn)行cookie的設(shè)置,如果刪除cookie需要使用新的Del-Cookie來(lái)實(shí)現(xiàn),則HTTP頭就會(huì)變得復(fù)雜,實(shí)際上僅通過(guò)Set-Cookie就可以簡(jiǎn)單明了的實(shí)現(xiàn)Cookie的設(shè)置、更新與刪除。
了解原理以后,我們也可以直接通過(guò)header來(lái)刪除cookie。
header("Set-Cookie:test=1393832059; expires=".gmdate('D, d M Y H:i:s \G\M\T', time()-1));
這里用到了gmdate,用來(lái)生成格林威治標(biāo)準(zhǔn)時(shí)間,以便排除時(shí)差的影響。
刪除test的cookie值。
setcookie('test', '', time()-1);
請(qǐng)驗(yàn)證,完成請(qǐng)求
由于請(qǐng)求次數(shù)過(guò)多,請(qǐng)先驗(yàn)證,完成再次請(qǐng)求
打開(kāi)微信掃碼自動(dòng)綁定
綁定后可得到
使用 Ctrl+D 可將課程添加到書(shū)簽
舉報(bào)