昨天在使用cookie時(shí)頁(yè)面報(bào)錯(cuò):php Cannot modify header information-headers already sent by了,下面我來(lái)總結(jié)關(guān)于報(bào)錯(cuò)的解決辦法,代碼如下:
Warning: Cannot modify header information - headers already sent by
出錯(cuò)的原因我在php程序的頭部加了:
header("cache-control:no-cache,must-revalidate");
原因分析:在PHP里Cookie的使用是有一些限制的。
1、使用setcookie必須在<html>標(biāo)簽之前
2、使用setcookie之前,不可以使用echo輸入內(nèi)容
3、直到網(wǎng)頁(yè)被加載完后,cookie才會(huì)出現(xiàn)
4、setcookie必須放到任何資料輸出瀏覽器前,才送出.....
由于上面的限制,在使用setcookie()函數(shù)時(shí),學(xué)會(huì)遇到 "Undefined index"、"Cannot modify header information - headers already sent by"…等問(wèn)題,解決辦法是在輸出內(nèi)容之前,產(chǎn)生cookie
解決辦法
1在頁(yè)面頂部的php標(biāo)簽中加入ob_start();
2在返回的信息下面加入ob_end_flush();
這樣就可以屏蔽錯(cuò)誤信息的現(xiàn)實(shí)了,但有的朋友說(shuō)上面辦法不行,后來(lái)我后來(lái)打開(kāi) php.ini 然后把 output_buffering 設(shè)為 on,重起appache,OK??磥?lái)這才是解決辦法,另外有朋友說(shuō)是編碼問(wèn)題,只要轉(zhuǎn)換文檔有uft-8就可以解決了,這里就不介紹了。