警告:無法修改頭部訊息 - 頭部已經在/some/file.php的第12行開始發送輸出,位於/some/file.php的第23行
P粉164942791
2023-07-30 11:19:01
<p>要理解為什麼頭部必須在輸出之前發送,需要查看典型的HTTP響應。 PHP腳本主要產生HTML內容,同時也會傳遞一組HTTP/CGI頭部到Web伺服器上。當您將帶有資料庫或PHP網站的網站託管在伺服器上時,就會發生此錯誤。首先,您需要進入您的主機網站,找到.htaccess文件,在其中添加以下命令(php_flag output_buffering on),這樣您的問題將得到解決。 </p>
以下是您可以排除故障並解決此問題的方法:
檢查指定的行:警告訊息顯示輸出始於/some/file.php的第12行,並且您在第23行嘗試修改頭部資訊。轉到這些行,並確保在第23行的header()函數呼叫之前沒有任何空格、echo、print、HTML或其他輸出。
刪除任何前導空格:如果在目前檔案之前包含或需要任何PHP檔案(例如使用include或require),請確保這些檔案在開頭的<?php標記之前沒有任何前導空格。 PHP標記以外的空格被視為輸出,可能會導致此警告。
避免使用關閉的PHP標記:在僅包含PHP程式碼(沒有HTML)的PHP檔案中,通常會建議省略檔案結尾的關閉PHP標記(?>)。這樣可以確保在關閉標記後沒有意外的空格或字符,以避免觸發輸出。
使用輸出緩衝:如果在header()呼叫之前有一些無法避免的輸出(例如由於函式庫依賴或條件語句),您可以使用輸出緩衝來捕獲輸出並防止其立即傳送到瀏覽器。在PHP腳本的開頭使用ob_start()開始輸出緩衝,在header()呼叫之前使用ob_end_flush()或ob_end_clean()結束輸出緩衝。
使用輸出緩衝的範例:
#