2016-06-11 14 views
-2

Ich habe vor kurzem begonnen, eine Website zum Erlernen von HTML/CSS/JS/PHP zu schreiben.PHP IF-Statement funktioniert nicht wie ich will

Ich entwarf das Front-End meiner Website mit Bootstrap. Jetzt versuche ich einige Eingaben mit PHP zu validieren.

Ich versuchte dies:

if ($durationHH <= 0 && $durationMM <= 0) 
    { 
     echo "DurationHH and DurationMM can not be both zero at the same time.";  
     echo "<br>"; 
     echo "DurationHH and DurationMM can not be smaller than 0.";  
    } 
    elseif (empty($durationHH) || empty($durationMM)) 
    {  
     echo "DurationHH and DurationMM can not be empty."; 
     echo "<br>"; 
    } 
    else 
    { 
     echo $_POST["durationMM"]; 
     echo ":"; 
     echo $_POST["durationHH"]; 
    } 

ich die Validierung, indem sie in einigen Werten für durationHH und durationMM getestet.

Alles funktioniert so weit in Ordnung, außer diesen beiden Fällen:

durationMM = 0 und durationHH = beliebigen Wert

& &

durationHH = 0 und durationMM = beliebigen Wert.

In diesen beiden Fällen bekomme ich die Ausgabe: "DurationHH und DurationMM darf nicht leer sein."

Wie/warum passiert das?

+0

'0 'ist in diesem Fall leer, also ändern Sie zu' $ durationHH ==' '|| $ durationMM == '' 'oder Sie können wie' is_numeric' verwenden – Thamilan

+0

Diese [SO Frage] (http://stackoverflow.com/q/2220519/5447994) kann Ihnen die Idee geben – Thamilan

+0

Danke für Ihre Antwort. Es funktioniert jetzt ^^ – freshTomato

Antwort

0

Wenn durationHH und durationMM immer Ganzzahlen oder numerisch sein müssen, verwenden Sie ! is_numeric(), um zu überprüfen.