php setcookie失效的解決辦法:1、瀏覽器開啟cookie;2、刪除在setcookie()之前的任何HTTP頭部輸出;3、使用php的setcookie()來創(chuàng)建cookie即可。
本文操作環(huán)境:Windows7系統(tǒng)、PHP7.1版,DELL G3電腦
php setcookie函數(shù)失效?
最近在為一個網(wǎng)站寫php后臺的時候發(fā)現(xiàn)setcookie這個函數(shù)總是不能正常的設(shè)置cookie,通過var_dump()發(fā)現(xiàn)函數(shù)返回值是false,顯然是設(shè)置不成功,谷歌之,發(fā)現(xiàn)setcookie失效可能有這樣一些原因:
瀏覽器禁用了cookie。不用檢查,我肯定沒有禁用。
使用php的setcookie()來創(chuàng)建cookie和php中開啟session的 session_start()一樣,在setcookie()之前不能有任何HTTP頭部輸出。我去檢查代碼,發(fā)現(xiàn)如下代碼
var_dump($qOpenId);
setcookie('qOpenId',$openid,time() + 30 * 24 * 3600,'/');
果斷注釋var_dump($OpenId)這行,測試,成功。
個人認為,setcookie應(yīng)該是直接設(shè)置http header里面的內(nèi)容,所以前面不能有任何頭部輸出,var_dump,echo 什么的都不能有
推薦學(xué)習:《PHP視頻教程》