Heim > Artikel > Backend-Entwicklung > Was tun, wenn der PHP-Header nicht funktioniert?
Methoden für den Fall, dass der PHP-Header nicht funktioniert: 1. Löschen Sie das Leerzeichen zwischen Ort und „:“ 2. Löschen Sie die Ausgabe, bevor Sie den Header verwenden. 3. Der PHP-Code nach der Ausführung des Headers.
Die Betriebsumgebung dieses Artikels: Windows 7-System, PHP-Version 7.1, DELL G3-Computer
Was soll ich tun, wenn der PHP-Header nicht funktioniert?
Ursachenanalyse und Lösungen für den PHP-Header Fehler
in PHP Wenn Sie header("location:test.php") zum Springen verwenden, beachten Sie bitte die folgenden Punkte:
1 Zwischen location und „:“ darf kein Leerzeichen stehen, da sonst ein Fehler auftritt .
2. Vor der Verwendung des Headers darf keine Ausgabe erfolgen, auch keine Leerzeichen nach dem Tag „?>“! !
3. Der PHP-Code nach dem Header wird ebenfalls ausgeführt.
Fortsetzung:
Problem: Eingabe von Inhalten vor der Header-Funktion
Im Allgemeinen können HTML-Inhalte nicht vor der Header-Funktion ausgegeben werden. Ähnliche Funktionen umfassen setcookie() und Sitzungsfunktionen. Diese Funktionen müssen der Ausgabe Nachrichten-Header-Informationen hinzufügen Strom. Wenn es Anweisungen wie echo gibt, bevor header() ausgeführt wird, wird beim späteren Auftreten von header() der Fehler „Warnung: Header-Informationen können nicht geändert werden – Header wurden bereits gesendet von …“ gemeldet. Das heißt, dass vor diesen Funktionen kein Text, keine Leerzeilen, kein Wagenrücklauf usw. stehen darf und es am besten ist, die Funktion „exit()“ nach der Funktion „header()“ hinzuzufügen. In der folgenden falschen Schreibweise befindet sich beispielsweise eine Leerzeile zwischen den beiden PHP-Codeschnipseln:
//Hier sollte eine Leerzeile stehen
Grund:
Wenn das PHP-Skript mit der Ausführung beginnt, kann es http senden Der Nachrichten-Header (Header) und der Nachrichten-Header (von der Header()- oder SetCookie()-Funktion) werden nicht sofort gesendet, sondern in einer Liste gespeichert Header-Informationen, einschließlich des Standard-Headers (z. B. eines Content-Type-Headers). Sobald das Skript jedoch eine Nicht-Header-Ausgabe sendet (z. B. mithilfe von HTML oder einem print()-Aufruf), muss PHP zunächst alle Header senden. Beenden Sie dann den HTTP-Header. Fahren Sie dann mit dem Senden von Textdaten fort. Von diesem Zeitpunkt an ist jeder Versuch, Header-Informationen hinzuzufügen oder zu ändern, nicht zulässig und es wird eine der oben genannten Fehlermeldungen gesendet.
Lösung:
Ändern Sie php.ini, um den Cache (output_buffering) zu öffnen, ändern Sie „output_buffering=0“ in „output_buffering=4096“
oder verwenden Sie die Cache-Funktionen ob_start(), ob_end_flush() usw. im Programm. Das Prinzip ist: Wenn „output_buffering“ aktiviert ist, sendet PHP den HTTP-Header nicht, wenn das Skript eine Ausgabe sendet. Stattdessen leitet es diese Ausgabe an einen dynamisch wachsenden Cache weiter (nur verfügbar in PHP 4.0, das über einen zentralisierten Ausgabemechanismus verfügt). Sie können weiterhin Header ändern/hinzufügen oder Cookies setzen, da die Header nicht tatsächlich gesendet werden. Wenn alle Skripte beendet sind, sendet PHP automatisch HTTP-Header an den Browser und sendet dann den Inhalt des Ausgabepuffers.
Empfohlenes Lernen: „PHP-Video-Tutorial“
Das obige ist der detaillierte Inhalt vonWas tun, wenn der PHP-Header nicht funktioniert?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!