最近在為一個網站寫php後台的時候發現setcookie這個函數總是不能正常的設定cookie,透過var_dump()發現函數傳回值是false,顯然是設定不成功,Google之,發現setcookie失效可能有這樣一些原因:
1.瀏覽器停用了cookie。不用檢查,我肯定沒有禁用。
2.使用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 什麼的都不能有
相關文章: