警告无法修改标头信息 - 已发送的标头

外观:

当你的脚本尝试将 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 参考答案马里奥