suchen

Heim  >  Fragen und Antworten  >  Hauptteil

Warnung: Header-Informationen können nicht geändert werden – Header hat bereits begonnen, die Ausgabe in Zeile 12 von /some/file.php in Zeile 23 von /some/file.php zu senden

<p>Um zu verstehen, warum Header vor der Ausgabe gesendet werden müssen, müssen Sie sich eine typische HTTP-Antwort ansehen. Das PHP-Skript generiert hauptsächlich HTML-Inhalte und übergibt außerdem eine Reihe von HTTP/CGI-Headern an den Webserver. Dieser Fehler tritt auf, wenn Sie eine Website mit einer Datenbank oder einer PHP-Site auf dem Server hosten. Zuerst müssen Sie auf Ihre Hosting-Website gehen, die .htaccess-Datei suchen, den folgenden Befehl hinzufügen (php_flag Output_buffering on) und Ihr Problem wird gelöst. </p>
P粉164942791P粉164942791519 Tage vor510

Antworte allen(1)Ich werde antworten

  • P粉439804514

    P粉4398045142023-07-31 09:13:23

    以下是您可以排除故障并解决此问题的方法:

    检查指定的行:警告信息显示输出始于/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()结束输出缓冲。

    使用输出缓冲的示例:


    <?php 
    ob_start(); // Start output buffering
    // Code that generates output (if any)
    // Now, set the headers
    header('Location: new_page.php');
    exit();
    ob_end_flush(); // Send the output to the browser
    ?>

    Antwort
    0
  • StornierenAntwort