昨天在使用cookie時頁面報錯:php Cannot modify header information-headers already sent by了,下面我來總結關於報錯的解決辦法。
代碼
代碼如下 復制代碼 <?phpWarning: Cannot modify header information - headers already sent by出錯的原因
我在php程序的頭部加了,
header("cache-control:no-cache,must-revalidate");
原因分析
在PHP裡Cookie的使用是有一些限制的。
1、使用setcookie必須在<html>標簽之前
2、使用setcookie之前,不可以使用echo輸入內容
3、直到網頁被加載完後,cookie才會出現
4、setcookie必須放到任何資料輸出浏覽器前,才送出
.....
由於上面的限制,在使用setcookie()函數時,學會遇到 "Undefined index"、"Cannot modify header information - headers already sent by"…等問題,解決辦法是在輸出內容之前,產生cookie
解決辦法
1在頁面頂部的php標簽中加入ob_start();
2在返回的信息下面加入ob_end_flush();
這樣就可以屏蔽錯誤信息的現實了
但有的朋友說上面辦法不行,後來我後來打開 php.ini 然後把 output_buffering 設為 on 。重起appache,OK。看來這才是解決辦法。
另外有朋友說是編碼問題,只要轉換文檔有uft-8就可以解決了,這裡就不介紹了。