只要我想知道bmi,那段代码就可以完成它的工作。但是它也应该检查公式是否填充了数字,如果不是这样的话,else语句应该启动。虽然它似乎开始它总是指出错误消息,如:
((这不是我链接到的另一个问题的重复。在那里它讨论了另一个关于新错误消息的话题,但这是关于我如何编写我的if-else语句以便检查数字拉动out else else。))
警告:遇到非数字值 第15行的C:\ xampp \ htdocs \ workspace \ 4.5 \ Aufgabe19.php
警告:遇到非数字值 第15行的C:\ xampp \ htdocs \ workspace \ 4.5 \ Aufgabe19.php
警告:遇到非数字值 第16行的C:\ xampp \ htdocs \ workspace \ 4.5 \ Aufgabe19.php
它不应该这样做。它应该说:bitte geben sie zahlen ein,如果公式充满其他东西。
<?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.";
}
?>
答案 0 :(得分:0)
我无法清楚地看到你的问题。但我认为你想提醒用户输入值,它应该是数字.....而不是你所描述的错误显示的错误.... May在判断你的问题时我错了......
试试这样。
$error = false; // this should be before checking if post submitted...
if ( ((!isset( $gewicht)) || (empty( $gewicht)) ) && ( (!isset( $koerpergroesse )) || (empty( $koerpergroesse ))) ){
$error=true;
echo "Please fill up values";
}
if ( (!is_numeric($gewicht)) && (!is_numeric($koerpergroesse)) ){
$error=true;
echo "Value must be numeric";
}
if (!$error) {
if ($bmi < 18.5) {.......
答案 1 :(得分:0)
在测试之前,您在计算中使用了非数字值,以查看它们是否为数字。 POST值包含无效字符串。然后你在计算中立即使用它们,之前你检查它们是否是数字:
$gewicht = $_POST['gewicht'];
$koerpergroesse = $_POST['koerpergroesse'];
$dezimal = ($koerpergroesse /100) * ($koerpergroesse / 100);
$bmi = $gewicht / $dezimal;
if (is_numeric($gewicht) && is_numeric($koerpergroesse)) {
您应该将计算放在if
语句中:
$gewicht = $_POST['gewicht'];
$koerpergroesse = $_POST['koerpergroesse'];
if (is_numeric($gewicht) && is_numeric($koerpergroesse)) {
$dezimal = ($koerpergroesse /100) * ($koerpergroesse / 100);
$bmi = $gewicht / $dezimal;