molily: isset/empty

Beitrag lesen

Hallo, Chris,

if (isset($_SERVER['HTTP_REFERER']) && !empty($_SERVER['HTTP_REFERER'] && !stristr($_SERVER['HTTP_REFERER'], "deineURL.de")) {

Da ist noch ein Tippfehler drinnen, also doch eine kleine Hürde für D. eingebaut.

Oh, ich sollte behaupten, ich hätte ihn absichtlich eingebaut. Natürlich fehlt eine schließende Klammer beim empty-Funktionsaufruf.

Eigentlich sollte das auch reichen:

if (!empty($_SERVER['HTTP_REFERER']) && !stristr($_SERVER['HTTP_REFERER'], "deineURL.de")) {

Stimm. Laut Dokumentation impliziert !empty() isset(), sodass !empty() ausreicht, darin habe ich mich wohl geirrt. Ich denke immer in Kategorien der Fehlerbehandlung, in welchen es zweifelsohne sinnvoll ist, zuerst zu überprüfen, ob der/die Parameter überhaupt übertragen wurde/n, bevor man den Inhalt prüft, um die Fälle unterschiedlich zu behandeln.

PHP Warnungen wegen nichtgesetzten Variablen können doch nur durch verschachtelten if-Anweisungen vermieden werden.

Was meinst du damit? Wieso verschachtelt, eine if-Anweisung reicht doch.

if ( [bedingung1] && [bedingung2] && [bedingung3] ) ...

Für den Fall, dass bedingung1 FALSCH ist, werden bedingung2 und bedingung3 nicht berechnet, insofern kommt es auf dasselbe heraus wie verschachtelte if-Anweisungen:

if ([bedingung1]) {
 if ([bedingung2]) {
  if ([bedingung3]) {
   ...

Wenn bedingung1 überprüft, ob eine Variable gesetzt ist, können die Bedingungen 2 und 3 Ausdrücke enthalten, welche Warnungen auswerfen würden, wenn bedingung1 herausgenommen würde.

(Im Übrigen erinnere ich mich nicht, wann ich das letzte Mal auf Warnungen gestoßen bin, das heißt ich weiß nicht, wann sie genau auftreten...)

Grüße,
Mathias

--
Mein Leben, ein Leben ist es kaum, / Ich gehe dahin als wie im Traum.
Wie Schatten huschen die Mensch hin, / Ein Schatten dazwischen ich selber bin.
Und im Herzen tiefe Müdigkeit - / Alles sagt mir: Es ist Zeit ...
(Theodor Fontane, Mein Leben)