
q0987
Soll ich nach dem Aufrufen des Redirect-Funktionsheaders exit aufrufen oder nicht?
<?php // fileA
$urlFailToGoTo = '/formerror.php';
if (sth)
{
header(sprintf("Location: %s", $urlFailToGoTo));
exit(); //should I call exit() here? or return?
}
?>
Danke
Das sollten Sie auf jeden Fall. Andernfalls wird die Skriptausführung nicht beendet. Das Setzen eines weiteren Headers allein reicht nicht aus, um umzuleiten.

Jan Turoň
Sie sollten, genau wie @rgroli erklärt. Wer sich nicht mit Klammern herumschlagen möchte, kann auch anrufen header()
IN exit()
:
if(sth) exit(header("Location: http://example.com"));
Der Location-Header in HTTP/1.1 erfordert immer einen absoluten Pfad siehe Hinweis hier.
Notiz: Dies ist kein Hack, da die Exit-Code wird nur verwendet, wenn der Parameter ganzzahlig ist, while header()
erzeugt void (es wird mit code=0 beendet, normaler Ausgang). Betrachten Sie es als exit_header()
funktionieren wie es sein sollte nachher Location
Header.
Es ist im Allgemeinen eine gute Praxis, exit;
(Beachten Sie – es ist ein Schlüsselwort, also brauchen Sie das nicht ()
) nach dem Senden von a Location:
Header, da Browser auf die neue Seite umleiten sollen und somit eine weitere Ausführung des aktuellen Skripts meist unerwünscht ist.
Wenn Sie keinen Code (PHP oder HTML) unter der Kopfzeile haben, müssen Sie dies nicht tun.
exit ist eine schlechte Codierung.
Wenn Sie jemals ein großes Projekt entwickeln und PHP Unit Testcases erstellen möchten, wird Exit Sie vermasseln.
exit beendet das Skript und Ihren laufenden Test! Es gibt keine Möglichkeit, den Test wiederherzustellen und festzustellen, ob er fehlgeschlagen ist oder nicht …
Organisiere deinen Code so, dass es keine Ausgabe gibt und das Skript natürlich endet, wenn du eine Weiterleitung verwendest …
9892100cookie-checkphp – Soll ich exit() aufrufen, nachdem ich Location: header aufgerufen habe?yes
mögliches Duplikat von Warum muss ich ‘exit’ nach der Umleitung durch header(‘Location..’) in PHP aufrufen?
– Bahnwart.6
14. Oktober 2014 um 17:52 Uhr