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
Post a Comment