Ankündigung

Einklappen
Keine Ankündigung bisher.

IF Abfrage immer wahr ... Auch wenn nicht wahr sein sollte

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • IF Abfrage immer wahr ... Auch wenn nicht wahr sein sollte

    Hi,

    ich habe eine IF Abfrage die immer ausgeführt wird, auch wenn die Vergleichswerte nicht identisch sind.

    Vielleicht seht ihr den Fehler ....

    Code:
    php Auszug
    
    		foreach($CORE->XMLFILES as $INDEX => $VALUE)
    		{
    			if($_POST["xmldatei"]==$INDEX)
    			{
    				$PTE->Add("display_list_result", "SELECTED", " selected=\"selected\"");
    			}
    		}
    Code:
    html Auszug
    
    <select name="xmldatei" size="5" class="list">
    				<option value="none">-- XML Datei ausw&auml;hlen --</option>
    				<option value="0" selected="selected">artikel.XML - 2429278 bytes</option>
    </select>
    $CORE->XMLFILES enthält zur Zeit nur

    $CORE->XMLFILES[0]["filesize"] = ...
    $CORE->XMLFILES[0]["filename"] = ...

    Jemand ne Idee? Andere IF Abfragen funktionieren wie sie sollten... Nur diese benimmt sich daneben. Wenn man == durch != ersetzt wird der Wahrheitsteil ($PTE usw) gar nicht ausgeführt. :roll


    :Update:
    Die IF Abfrage wird sogar immer noch ausgeführt wenn ich
    Code:
    if("bla"==$INDEX) { ... }
    mache....
    http://www.donvelopment.org

  • #2
    Dann versuch es mal mit ===
    TRUE if $a is equal to $b, and they are of the same type. (introduced in PHP 4)

    Kommentar


    • #3
      Mit === gings auch nicht. Da gabs gar kein "wahr" Verhalten mehr. Aber ich habs hinbekommen. Das $INDEX hab ich in Anführungszeichen gesetzt. Schon funktionierte die Sache


      Lösung:
      Code:
      if($_POST["xmldatei"]=="$INDEX")
      http://www.donvelopment.org

      Kommentar


      • #4
        Aha, schön das es geht, aber kann mir mal jemand erklären warum? Das is doch jetzt ein einfacher String oder?

        Kommentar


        • #5
          Was auch immer es vorher war. Und was auch immer da (jetzt) verglichen wird.

          Kommentar


          • #6
            $INDEX enthält halt den Indexwert (Zahl 0-...) und $_POST["xmldatei"] enthält entweder nix (emtpy) oder halt einen Indexwert.
            http://www.donvelopment.org

            Kommentar


            • #7
              Ah, dann bist Du vorher in die type juggle Falle von php getappst.
              0 wird als false gewertet, wenn es wie ein bool benutzt wird
              ein leeres Feld, leere Zeichenektte, die Zeichenkette '0' auch
              Alles sehr bequem, aber eben auch fehlerträchtig.

              Kommentar


              • #8
                oki. Danke. Dann weiß ich beim nächsten mal bescheid Nach all den Jahren tappse ich in so eine Anfängerfalle :wink:
                http://www.donvelopment.org

                Kommentar

                Lädt...
                X