kostenloser Webspace werbefrei: lima-city


Verschachtelte Bedingung

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    i************s

    Hallo,

    ich habe da eine verschachtelte Bedingung mit der ich überprüfen will, ob eine Datei bzw. mehrere Dateien eine bestimmte Größe nicht überschreitet und von einem bestimmten Typ ist.

    if  (
    		($_FILES['datei1']['size'] != "0" and $_FILES['datei1']['size']<= "1048576"  and $_FILES['datei1']['type'] = "application/msword")
    		and
    		(
    		($_FILES['datei2']['size'] <= "1048576"  and $_FILES['datei2']['type'] = "application/msword")
    			or($_FILES['datei2']['size'] <= "0"  and $_FILES['datei2']['type'] = "")
    		)
    		and
    		(
    		($_FILES['datei3']['size'] <= "1048576"  and $_FILES['datei3']['type'] = "application/msword")
    			or($_FILES['datei3']['size'] <= "0"  and $_FILES['datei3']['type'] = "")
    		)
    )
    
    { Schicke Mail}
    
    else
    
    { Fehlermeldung}

    Es klappt zwar insofern, dass wenn keine Dateien ausgewählt wurden, auch keine Mail verschickt wird und die Fehlermeldung kommt.
    Wenn ich aber was anderes als eine Word Datei schicke oder die oben angegebene Größe überschritten wird kommt die Meldung irgendwie nicht und die Mail wird dennoch versendet.


    Beitrag geändert: 27.10.2006 13:45:01 von ibes-solutions
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. sandrock-jonas

    Kostenloser Webspace von sandrock-jonas

    sandrock-jonas hat kostenlosen Webspace.

    1. Nimm für sowas einfach mehrere if-Bedingungen:

    $chk = false;
    if  ($_FILES['datei1']['size'] != '0' && $_FILES['datei1']['size'] <= '1048576'&& $_FILES['datei1']['type'] == 'application/msword') {
      if ($_FILES['datei2']['size'] <= '1048576' && $_FILES['datei2']['type'] == 'application/msword') {
        if ($_FILES['datei3']['size'] <= '1048576' && $_FILES['datei3']['type'] == 'application/msword') {
          $chk = true;
        } elseif ($_FILES['datei3']['size'] <= '0' && $_FILES['datei3']['type'] == '') {
          $chk = true;
        }
      } elseif ($_FILES['datei2']['size'] <= '0' && $_FILES['datei2']['type'] == '') {
        if ($_FILES['datei3']['size'] <= '1048576' && $_FILES['datei3']['type'] == 'application/msword') {
          $chk = true;
        } elseif ($_FILES['datei3']['size'] <= '0' && $_FILES['datei3']['type'] == '') {
          $chk = true;
        }
      }
    }
    
    if ($chk) {
      //Schicke Mail
    } else {
      //Fehlermeldung
    }


    Dadurch wird das ganze wesentlich übersichtlicher.

    2. In if-Bedingungen muss es $variable == 'string' und nicht $variable = 'string' heißen. Ich würde dir grundsätzlich empfehlen, anstatt der Schreibweise:
    if ($variable == 'string')
    die Schreibweise:
    if ('string' == $variable)
    empfehlen. So bekommst du immer eine Fehlermeldung, wenn du versehentlich ein einfaches = anstatt von == genommen hast.
  4. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!