PHP Why does the else-Statment not work properly before the is_numeric function -


that piece of code job long want know bmi. should check if formula filled numbers , else statement should kick in if not case. although seems kick in points out error messages like:

((this not duplicate of question linked to. there talks topic new error messages how have write if-else statement check numeric pulls out else statement.))

warning: non-numeric value encountered in c:\xampp\htdocs\workspace\4.5\aufgabe19.php on line 15

warning: non-numeric value encountered in c:\xampp\htdocs\workspace\4.5\aufgabe19.php on line 15

warning: non-numeric value encountered in c:\xampp\htdocs\workspace\4.5\aufgabe19.php on line 16

which should not do. should say: bitte geben sie zahlen ein, if formular filled other things.

        <?php     // variablen deklararien und werte zuweisen.     $gewicht = $_post['gewicht'];     $koerpergroesse = $_post['koerpergroesse']; $bmi = 0; $dezimal = 0;          $dezimal = ($koerpergroesse /100) * ($koerpergroesse / 100);   $bmi = $gewicht / $dezimal;   if (is_numeric($gewicht) && is_numeric($koerpergroesse)) {     if ($bmi < 18.5) {       echo "ihr bmi beträgt: " . round($bmi,2) . "<br>";      echo "sie haben untergewicht.";     }    if ($bmi >= 18.5 && $bmi < 25) {       echo "ihr bmi beträgt: " . round($bmi,2) . "<br>";      echo "sie haben normalgewicht.";   }    if ($bmi >= 25 && $bmi < 30) {       echo "ihr bmi beträgt: " . round($bmi,2) . "<br>";      echo "sie haben leichtes Übergewicht.";   }    if ($bmi >= 30 && $bmi < 40) {       echo "ihr bmi beträgt: " . round($bmi,2) . "<br>";      echo "sie haben starkes Übergewicht.";   }    if ($bmi >= 40) {       echo "ihr bmi beträgt: " . round($bmi,2) . "<br>";      echo "sie haben lebensbedrohliches Übergewicht.";   } } else {  echo "bitte geben sie zahlen ein."; }    ?> 

you're using non-numeric values in calculations before test them see if they're numeric. post values contain invalid strings. use them in calculation, before check see if they're numeric:

$gewicht = $_post['gewicht']; $koerpergroesse = $_post['koerpergroesse']; $dezimal = ($koerpergroesse /100) * ($koerpergroesse / 100); $bmi = $gewicht / $dezimal; if (is_numeric($gewicht) && is_numeric($koerpergroesse)) { 

you should put calculations inside if statement:

$gewicht = $_post['gewicht']; $koerpergroesse = $_post['koerpergroesse']; if (is_numeric($gewicht) && is_numeric($koerpergroesse)) {     $dezimal = ($koerpergroesse /100) * ($koerpergroesse / 100);     $bmi = $gewicht / $dezimal; 

Comments

Popular posts from this blog

javascript - Clear button on addentry page doesn't work -

c# - Selenium Authentication Popup preventing driver close or quit -

tensorflow when input_data MNIST_data , zlib.error: Error -3 while decompressing: invalid block type -