Heim > Artikel > Backend-Entwicklung > Lösung für das Problem, dass Header-Informationen nicht geändert werden können (PHP)
Ich habe bei der Funktionsausführung eine einheitliche Fehleradresse erstellt und sie in ein Cookie geschrieben, damit der Benutzer nach dem Anmelden direkt zur auszuführenden Seite springen kann. Das habe ich jedoch gefunden Beim Testen auf dem Server wurde tatsächlich ein Fehler angezeigt, der nicht lokal aufgetreten ist: Warnung: Header-Informationen können nicht geändert werden – Header wurden bereits gesendet von ...
Diese Aussage wird offensichtlich von setcookie verursacht. Ich habe online nachgesehen und Folgendes gefunden . Erläuterung: Es gibt einige Einschränkungen bei der Verwendung von Cookies, wie zum Beispiel:
1. Die Beschreibung des Aufrufs von setcookie muss vor dem Tag platziert werden. 2. Vor dem Aufruf von setcookie kann kein Echo verwendet werden 🎜> 3. Bis zur Webseite Das Cookie erscheint erst beim erneuten Laden im Programm
4. Die Setcookie-Funktion muss gesendet werden, bevor irgendwelche Daten an den Browser ausgegeben werden
5. ...
Basierend auf den oben genannten Einschränkungen, also beim Festlegen der Cookie()-Funktion, treten häufig Probleme wie „Undefinierter Index“, „Header-Informationen können nicht geändert werden – Header wurden bereits gesendet von“ usw. auf. So beheben Sie den Fehler „ „Header-Informationen können nicht geändert werden – Header bereits gesendet von“ besteht darin, das Cookie zu generieren, bevor zunächst die Datenausgabe an den Browser verzögert wird, sodass Sie die Funktion ob_start(); am Anfang des Programms hinzufügen können. Dies wird es lösen. Wenn Sie ob_start() hinzufügen möchten, scheint es etwas deprimierend, dies zu ändern, nachdem das Programm geschrieben wurde. Als ich herausfand, dass dieser Fehler angezeigt wurde, fragte ich mich, warum mein lokaler Computer dies nicht tat Problem. Ich dachte, es sei die PHP.ini-Konfiguration, aber ich denke, sie ist fast gleich...
Schauen Sie sich also den folgenden Satz an, der bedeutet dass es eine Ausgabe an einer anderen Stelle vor setcookie gibt. Also habe ich die Datei gefunden, die auf die Ausgabe folgte, und sah, dass die erste Zeile leer war, und dann begann Gelöst!
Lösung zwei:
Die meisten Methoden, um dieses Problem online zu lösen sind die gleichen, aber ich bin heute wieder auf solche Fragen gestoßen. Nachdem ich es ausprobiert hatte, stellte ich fest, dass es funktioniert:
Suchen Sie die Konfigurationsdatei php.ini, suchen Sie dann nach einem Element: „output_buffering“, ändern Sie seinen Wert von „off“ auf „on“ und starten Sie Apache neu. Dann ist alles in Ordnung.
PS: Wenn Sie eine PHP-Anwendung in SAE erstellen und Ihr Jump und Setcookie nicht unterstützt werden, passiert dies manchmal auch. Die Spezifikationen der SAE-Entwicklungsdokumente müssen befolgt werden.
Das Obige stellt die Lösung für das Problem vor, dass Header-Informationen (PHP) nicht geändert werden können, einschließlich des relevanten Inhalts. Ich hoffe, dass es für Freunde hilfreich ist, die an PHP-Tutorials interessiert sind.