如何徹底杜絕warning: Cannot add header information - headers already sent in…… 這種令人莫明其妙的的錯(cuò)誤。 只要你寫過PHP代碼,相信都遇上過這個(gè)大多時(shí)候都令人莫明其妙的warning吧..今天我們就來搞定它…………… 看了PHP手冊,回答如下:消息“Warning: Cannot send session cookie - headers already sent…”或者“Cannot add/modify header information - headers already sent…”。 函數(shù) header(),setcookie() 和 session 函數(shù)需要在輸出流中增加頭信息。但是頭信息只能在其它任何輸出內(nèi)容之前發(fā)送。在使用這些函數(shù)前不能有任何(如 HTML)的輸出。函數(shù) headers_sent() 能夠檢查您的腳本是否已經(jīng)發(fā)送了頭信息。請參閱“輸出控制函數(shù)”。 意思是:不要在使用上面的函數(shù)前有任何文字,空行,回車,空格等。但。。。問題是,這答案并不令人滿意。因?yàn)橥绦蛟谄渌鸓HP環(huán)境下運(yùn)行卻正常。 首先:這錯(cuò)誤是怎么產(chǎn)生的呢?讓我們來看看PHP是如何處理HTTP header輸出和主體輸
文討論的是如何徹底杜絕warning: Cannot add header information - headers already sent in…… 這種令人莫明其妙的的錯(cuò)誤。
只要你寫過PHP代碼,相信都遇上過這個(gè)大多時(shí)候都令人莫明其妙的warning吧..今天我們就來搞定它……………
看了PHP手冊,回答如下:
消息“Warning: Cannot send session cookie - headers already sent…”或者“Cannot add/modify header information - headers already sent…”。
函數(shù) header(),setcookie() 和 session 函數(shù)需要在輸出流中增加頭信息。但是頭信息只能在其它任何輸出內(nèi)容之前發(fā)送。在使用這些函數(shù)前不能有任何(如 HTML)的輸出。函數(shù) headers_sent() 能夠檢查您的腳本是否已經(jīng)發(fā)送了頭信息。請參閱“輸出控制函數(shù)”。
意思是:不要在使用上面的函數(shù)前有任何文字,空行,回車,空格等。但。。。問題是,這答案并不令人滿意。因?yàn)橥绦蛟谄渌鸓HP環(huán)境下運(yùn)行卻正常。
首先:這錯(cuò)誤是怎么產(chǎn)生的呢?讓我們來看看PHP是如何處理HTTP header輸出和主體輸出的。
PHP腳本開始執(zhí)行時(shí),它可以同時(shí)發(fā)送header(標(biāo)題)信息和主體信息。 Header信息(來自 header() 或 SetCookie() 函數(shù))并不會立即發(fā)送,相反,它被保存到一個(gè)列表中。 這樣就可以允許你修改標(biāo)題信息,包括缺省的標(biāo)題(例如 Content-Type 標(biāo)題)。但是,一旦腳本發(fā)送了任何非標(biāo)題的輸出(例如,使用 HTML 或 print() 調(diào)用),那么PHP就必須先發(fā)送完所有的Header,然后終止 HTTP header。而后繼續(xù)發(fā)送主體數(shù)據(jù)。從這時(shí)開始,任何添加或修改Header信息的試圖都是不允許的,并會發(fā)送上述的錯(cuò)誤消息之一。
好!那我們來解決它:笨方法:把錯(cuò)誤警告全不顯示! 掩耳盜鈴之計(jì)
error_reporting(E_ERROR | E_PARSE); 這里不要顯示E_WARNING即可
2. mysql_connect() [function.mysql-connect]: Access denied for user 'root'@'localhost' (using password: YES)
這個(gè)問題很簡單,MySQL用戶名或密碼錯(cuò)誤。