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()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(); ?>
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(); ?>
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!