PHP-Redirect-Problem - Header-Informationen können nicht geändert werden [duplizieren]

8

Ich habe eine Seite, die verschiedene Elemente anzeigt, auch wenn die ID, die sie von der Datenbank aufruft, nicht existiert oder gelöscht wurde (was zusammen mit Suchmaschinen, die weiterhin nicht existierende Seiten auflisten, alle möglichen hässlichen Fehler hervorruft). p>

Kannst du den ersten Teil des Seitencodes, der unten gezeigt wird, modifizieren, um eine 404 zu senden (oder zumindest an projecterror.php, die 404 Header hat), wenn $ id nicht existiert? Vielen Dank!

%Vor%

Die folgende Modifikation wurde freundlicherweise von Matt Wilson als Ergebnis eines ursprünglichen Kommentars von Vivek Goel führt zu gültigen Einträgen, die die Seite korrekt zeigen, aber nicht vorhandene Seiten zeigen die Fehler unter diesem modifizierten Code:

%Vor%

Fehler aufgrund der obigen Änderungen:

%Vor%

Die Zeilen 22 und 23 sind die beiden Kopfzeilen wie folgt:

%Vor%     
JoeW 07.08.2011, 18:07
quelle

3 Antworten

25

Ich habe viel einfachere Lösung für Sie - es ist einfach! Fügen Sie einfach diesen Befehl am Anfang der PHP-Quelle hinzu:

%Vor%

Dies beginnt mit der Pufferung der Ausgabe, so dass nichts wirklich ausgegeben wird, bis das PHP-Skript endet (oder bis Sie den Puffer manuell löschen) - und bis zu diesem Zeitpunkt werden auch keine Header gesendet! Also müssen Sie Ihren Code nicht reorganisieren , fügen Sie einfach diese Zeile ganz am Anfang Ihres Codes hinzu und das wars: -)

    
TMS 08.08.2011, 15:33
quelle
2

bevor Sie etwas zur Ansicht senden (Text im Browser). Überprüfen Sie, ob Ihr Modell, ob ID gültig ist oder nicht. Wenn ID nicht gültig ist, leiten Sie sie zu Ihrer Fehlerseite weiter.

%Vor%     
Vivek Goel 07.08.2011 18:13
quelle
0

Es sollte kein Inhalt an den Browser gesendet werden, bevor die Umleitung von php header () verwendet wird. Sie können JavaScript-Umleitung stattdessen versuchen, wenn Header bereits gesendet werden.

%Vor%

Aber ich bin mir nicht sicher, ob JavaScript-Weiterleitungen suchmaschinenfreundlich sind

    
Withfriendship Hiox 31.01.2012 10:27
quelle