php setcookie失效的解決辦法:1、瀏覽器開啟cookie;2、刪除在setcookie()之前的任何HTTP頭部輸出;3、使用php的setcookie()來創建cookie即可。

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