Heim  >  Artikel  >  Backend-Entwicklung  >  PHP-Warnung: Header-Informationen können nicht geändert werden – Lösung

PHP-Warnung: Header-Informationen können nicht geändert werden – Lösung

WBOY
WBOYOriginal
2023-06-25 09:30:101190Durchsuche

Wenn Sie PHP zum Schreiben einer Website oder Webseite verwenden, kann es manchmal vorkommen, dass diese Fehlermeldung auftritt: PHP-Warnung: Header-Informationen können nicht geändert werden. Dieser Fehler wird normalerweise dadurch verursacht, dass versucht wird, den HTTP-Header zu ändern, wenn der HTTP-Header vor dem Senden des Inhalts an den Browser ausgegeben wird. Dieses Problem mag nicht schwerwiegend erscheinen, kann jedoch einen unvorhersehbaren Fehler in Ihrem PHP-Code verursachen. In diesem Artikel wird erläutert, wie Sie dieses Problem beheben können.

Was sind „Header-Informationen“?

Bevor wir dieses Problem verstehen, müssen wir wissen, was „Header-Informationen“ sind. „Header-Informationen“ sind einige Informationen, die zwischen dem Browser und dem Webserver übertragen werden. Zu diesen Informationen gehören Informationen über die Kodierung der Seite, die Sprache, die Ablaufzeit, die Cache-Steuerung, Cookies usw. Mit PHP können Sie diese Informationen mithilfe der Funktion header() ändern.

Ursachenanalyse

Wenn PHP-Code die Funktion header() verwenden muss, um den HTTP-Header zu ändern, erfordert die Ausführungs-Engine von PHP, dass keine Ausgabe erfolgt, bevor der HTTP-Header an den Browser gesendet wird. In PHP gibt es viele Möglichkeiten zur Ausgabe, z. B. Echo, Drucken, Leerzeichen, Wagenrücklauf und Zeilenvorschub usw. Wenn vor dem Senden der HTTP-Header eine Ausgabe erfolgt, generiert PHP den Fehler „Header-Informationen wurden bereits gesendet“. Aus diesem Grund tritt der Fehler „PHP-Warnung: Header-Informationen können nicht geändert werden“ auf.

Lösung: Es gibt drei Möglichkeiten, dieses Problem zu lösen: unnötige Zeichen im Code wie Leerzeichen, Wagenrückläufe, Zeilenvorschübe usw. Dies liegt daran, dass diese Zeichen auch eine Ausgabe erzeugen, wodurch die Ausgabe erfolgt, bevor der HTTP-Header gesendet wird, was den Fehler „Header-Informationen bereits gesendet“ auslöst.

Verwenden Sie die Funktionen ob_start() und ob_end_clean()
  1. Die Funktion ob_start() öffnet einen Ausgabepuffer, sodass alle Ausgaben im Speicher zwischengespeichert werden und HTTP-Header nicht an den Browser gesendet werden. Am Ende des PHP-Codes löscht die Funktion ob_end_clean() alle Puffer und sendet alle Ausgaben an den Browser.

Die Methode zur Verwendung der Funktionen ob_start() und ob_end_clean() ist wie folgt:

<?php
ob_start();
//Your PHP code
header('Location: http://www.example.com/');
ob_end_clean();
?>
    Im obigen Code öffnet die Funktion ob_start() einen Puffer, die Funktion header() legt den HTTP-Header fest und die Funktion ob_end_clean( )-Funktion löscht den Pufferbereich und sendet die Ausgabe an den Browser.
Verwenden Sie die Funktionen ob_start() und ob_end_flush()

Die Verwendung der Funktionen ob_start() und ob_end_flush() ähnelt der Verwendung der Funktionen ob_start() und ob_end_clean(). Der Unterschied besteht darin, dass die Funktion ob_end_flush() den Inhalt des Puffers an den Browser sendet und den Puffer schließt. Wenn Sie diesen Ansatz verwenden, müssen Sie sicherstellen, dass keine unnötige Ausgabe erfolgt, bevor Sie sie an den Browser senden.

Die Methode lautet wie folgt:

<?php
ob_start();
//Your PHP code
header('Location: http://www.example.com/');
ob_end_flush();
?>
    Zusammenfassung
  1. Wenn Sie auf den Fehler „PHP-Warnung: Header-Informationen können nicht geändert werden“ stoßen, geraten Sie nicht in Panik, denn dieser ist sehr einfach zu lösen. Stellen Sie einfach sicher, dass keine Ausgabe erfolgt, bevor Sie den HTTP-Header senden, oder verwenden Sie die Funktionen ob_start() und ob_end_clean() oder die Funktionen ob_start() und ob_end_flush(). Bei dieser Fehlermeldung handelt es sich in der Regel eher um eine Warnung als um einen schwerwiegenden Fehler, sodass Sie nicht in Panik geraten müssen. Solange Sie die oben genannten Methoden befolgen, wird Ihr PHP-Code normal ausgeführt.

Das obige ist der detaillierte Inhalt vonPHP-Warnung: Header-Informationen können nicht geändert werden – Lösung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn