運行腳本時,出現(xiàn)如下錯誤:
站在用戶的角度思考問題,與客戶深入溝通,找到方城網(wǎng)站設(shè)計與方城網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗,讓設(shè)計與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣、域名與空間、虛擬空間、企業(yè)郵箱。業(yè)務(wù)覆蓋方城地區(qū)。警告:不能更改頭信息-已經(jīng)( 輸出在/some/file.php:12開始 )在/some/file.php發(fā)送上線23頭
錯誤消息中提到的行包含header()和setcookie()調(diào)用。
這可能是什么原因? 以及如何解決?
一個簡單的提示:在腳本中,就在第一個
我之前曾多次收到此錯誤,并且可以肯定所有PHP程序員至少一次收到過此錯誤。
可能的解決方案1
該錯誤可能是由文件開頭之前或文件結(jié)尾之后的空格引起的。這些空格不應(yīng)在此處。
例)這里應(yīng)該沒有空白
echo "your code here";
?>
THERE SHOULD BE NO BLANK SPACES HERE
檢查與導(dǎo)致此錯誤的文件關(guān)聯(lián)的所有文件。
注意: 有時,像gedit(默認的Linux編輯器)之類的EDITOR(IDE)在保存文件上添加一個空行。 這不應(yīng)該發(fā)生。 如果您使用的是Linux。 您可以使用VI編輯器刪除頁面末尾?>之后的空格/行。
可能的解決方案2:如果不是您這種情況,請使用ob_start輸出緩沖:
這將打開輸出緩沖,并且將在緩沖頁面之后創(chuàng)建標題。
代替下面的行
//header("Location:".ADMIN_URL."/index.php");
寫
echo("");
要么
?>
肯定會解決您的問題。 我遇到了同樣的問題,但通過上述方式編寫標題位置解決了。
另一個不好的做法可能會引起此問題,尚未說明。
請參見以下代碼段:
事情還好吧?
如果“ a_important_file.php”是怎么辦:
----------This is the end of the an_important_file-------------------
這行不通嗎? 為什么?因為已經(jīng)生成了新行。
現(xiàn)在,盡管這不是常見的情況,但是如果您使用的是MVC框架,該框架會在將內(nèi)容移交給控制器之前加載大量文件? 這并非罕見的情況。 為此做好準備。
從PSR-2 2.2開始:
所有PHP文件都必須使用Unix LF (linefeed) line ending 。
所有PHP文件都必須以single blank line結(jié)尾。
only php包含only php文件中必須omitted ?>標記
相信我,遵循這些標準可以為您節(jié)省很多時間:)
通常,當我們在回顯或打印后發(fā)送標題時,會出現(xiàn)此錯誤。 如果在特定頁面上發(fā)生此錯誤,請確保在調(diào)用start_session()之前該頁面沒有回顯任何內(nèi)容。
不可預(yù)測的錯誤示例:
//your page content
再舉一個例子:
結(jié)論:在調(diào)用session_start()或header()函數(shù)header()甚至是空格或換行符session_start()之前,請勿輸出任何字符