Anmelden

Archiv verlassen und diese Seite im Standarddesign anzeigen : exit() hinter header-Anweisung?



asterix88
28-06-2011, 09:33
Hallo,
für ein PHP-Projekt werte ich Formulare aus und schreibe die Inhalte in eine Datenbank. In dem Skript, wo das passiert, habe ich sehr viele if-Abfragen, z.B. ob Felder (richtig) ausgefüllt sind oder die Datenbank erreichbar ist.
Im Fehlerfall leite ich mit einem header weiter auf die vorherige Seite und gebe der URL einen GET-Parameter mit einem "Rückgabewert" mit. Teilweise leitet das Skript aber nicht weiter, sondern "überspringt" den header bzw. führt den Code nach dem header weiter aus. Ist es sinnvoll, hinter jeder header-Anweisund ein exit(); einzufügen?
Oder gibt es bessere Möglichkeiten als mit header weiterzuleiten?

Beispiel meines headers:


header ("Location: seite.php?status=fehler");
header ("Location: seite.php?status=ok");



mfg asterix

undefined
28-06-2011, 12:55
Ein exit() verwendet man eigentlich nur um die Laufzeit eines Scripts zu verkürzen. Dies wird meistens im Zusammenhang mit einem Quelltext Problem behandelt.
Ich würde dir auch aus gründen der Sicherheit von dem setzen der CGI Variablen abraten!
Diese können vom Klienten geändert werden.
Verwende unter PHP lieber eine Session Sitzung.

asterix88
28-06-2011, 20:35
die verwende ich natürlich.
das setzen der GET-variablen mache ich nur, damit ich einen art status zurückbekomme, den ich dann abfrage, um eine erfolgs- oder fehlermeldung auszugeben.

msi
28-06-2011, 22:25
die verwende ich natürlich.
das setzen der GET-variablen mache ich nur, damit ich einen art status zurückbekomme, den ich dann abfrage, um eine erfolgs- oder fehlermeldung auszugeben.

exit kannst du schon verwenden

BlueJay
30-06-2011, 07:23
Ein exit() verwendet man eigentlich nur um die Laufzeit eines Scripts zu verkürzen. Dies wird meistens im Zusammenhang mit einem Quelltext Problem behandelt.
Ich würde dir auch aus gründen der Sicherheit von dem setzen der CGI Variablen abraten!
Diese können vom Klienten geändert werden.
Verwende unter PHP lieber eine Session Sitzung.

Jo, Quelltextproblem ist gut ;) Wenn das Script aufgrund von unpassenden CGI-Variablen die Arbeit verweigern soll, nehme ich gerne mal ein die/exit, bevor es ans "Eingemachte" geht.

Zum Ursprungsproblem: das hatte ich hier auf dem Server auch mal. Frage ist, was macht der Server, wenn die 1.Seite mal nicht zu erreichen ist? Stupst er dann die 2. an? Deshalb sitzen bei mir hinter den Header-Umleitungen auf existierende Seiten die/exits.


Gruß,
Ulrike

asterix88
07-07-2011, 08:22
ok, dann setze ich auch einfach hinter jeden header nen exit();