Sebastian: Brett vorm Kopf

Hi,

kann mir das einer erklären?

Alle Variablen sind ja augenscheinlich vorhanden und auch nicht leer.

Warum wird die if-Bedingung also erfüllt?

if ((!isset($datum_min)) || (!isset($datum_max)) || (!empty($datum_min)) || (!empty($datum_max)) || (!isset($menuepunkt)) || (!isset($menue)) || ($menuepunkt == '0') || ($menue == '0') ) {
echo("<br>$user<br>");
echo("<br>$datum_min<br>");
echo("<br>$datum_max<br>");
echo("<br>$menuepunkt<br>");
echo("<br>$menue<br>");
} else {
...
}

-----------------------------------------

Ausgabe:

User1

02-08-2010

20-08-2010

Punkt1

Menue1

Grüß, Seb

  1. [latex]Mae  govannen![/latex]

    Alle Variablen sind ja augenscheinlich vorhanden und auch nicht leer.

    Warum wird die if-Bedingung also erfüllt?

    (!empty($datum_min)) || (!empty($datum_max)) |

    Mindestens deshalb. Wenn die variable gesetzt, ist !empty erfüllt, also true.

    Cü,

    Kai

    --
    Dank Hixies Idiotenbande geschieht grade eben wieder ein Umdenken
    in Richtung "Mess up the Web".(suit)
    Foren-Stylesheet
    1. (!empty($datum_min)) || (!empty($datum_max)) |

      Mindestens deshalb. Wenn die variable gesetzt, ist !empty erfüllt, also true.

      Hi Kai,

      ich sag ja, Brett vorm Kopf.

      Danke fürs Abholzen und Gruß

      Seb

      1. Hello,

        ich sag ja, Brett vorm Kopf.

        Dann schick ich Dir mal mein Spezialbrett für Durchblicker ;-))

        Liebe Grüße aus dem schönen Oberharz

        Tom vom Berg

        --
         ☻_
        /▌
        / \ Nur selber lernen macht schlau
        http://bergpost.annerschbarrich.de
      2. [latex]Mae  govannen![/latex]

        ich sag ja, Brett vorm Kopf.

        Danke fürs Abholzen und Gruß

        wie dedlfix schon anmerkte: var_dump würde helfen. Wenn eine bedingte Verzweigung nicht so "erfüllt" wird, wie man es sich vorstellt, dann sollte man die einzelnen Teilbedingung testen.

        Das wäre dann in deinem Fall:

        var_dump((!isset($datum_min)),(!isset($datum_max)),(!empty($datum_min)),(!empty($datum_max)),(!isset($menuepunkt)),(!isset($menue)), ($menuepunkt == '0'),($menue == '0'));

        oder aufwendiger

        var_dump(!isset($datum_min));  
        var_dump(!isset($datum_max));  
        var_dump(!empty($datum_min));  
        var_dump(!empty($datum_max));  
        var_dump(!isset($menuepunkt));  
        var_dump(!isset($menue));  
        var_dump($menuepunkt == '0');  
        var_dump($menue == '0');
        

        Cü,

        Kai

        --
        Dank Hixies Idiotenbande geschieht grade eben wieder ein Umdenken
        in Richtung "Mess up the Web".(suit)
        Foren-Stylesheet
  2. Hi!

    Alle Variablen sind ja augenscheinlich vorhanden und auch nicht leer.

    Wie wäre es mit Kontrollausgaben statt Gedankenspielen? var_dump() ist dafür das beste Mittel. Zusätzlich empfiehlt es sich, das error_reporting auf E_ALL zu setzen. isset() und empty() arbeiten zwar stets schweigend, aber eine Notice beim var_dump()en zeigt dann an, dass die Variable nicht existiert.

    Lo!