警告無法修改標頭資訊 - 已傳送的標頭

外觀:

當你的指令碼嘗試將 HTTP 標頭髮送到客戶端但之前已經有輸出時,會發生這種情況,這導致標頭已經傳送到客戶端。

可能的原因 :

  1. 列印,回顯: 來自 print 和 echo 語句的輸出將終止傳送 HTTP 標頭的機會。必須重新構建應用程式流以避免這種情況。

  2. 原始 HTML 區域: .php 檔案中的未分析的 HTML 部分也是直接輸出。必須在任何原始塊之前注意將觸發 header() 呼叫的指令碼條件。

    <!DOCTYPE html>
    <?php
         // Too late for headers already.
    
  3. <?php 之前的空格為“script.php 第 1 行”警告: 如果警告引用第 1 行中的輸出,那麼它主要在開啟 <?php 標記之前引導空格,文字或 HTML。

    <?php
    # There's a SINGLE space/newline before <? - Which already seals it.
    

從 SO 參考答案馬里奧