[英]PHP Why does the else-Statment not work properly before the is_numeric function
只要我想知道bmi,那段代碼就可以完成工作。 但是它也應該檢查公式是否用數字填充,如果不是這樣,則應插入else語句。 盡管它似乎總是可以指出以下錯誤消息:
(((這不是我鏈接到的另一個問題的重復項。那里談論的是另一個主題,它涉及新的錯誤消息,但這是關於我必須如何編寫if-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.";
}
?>
我無法清楚地回答您的問題。但是我想提醒您輸入用戶值,它應該是數字的.....而不是您所描述的錯誤顯示....可能是我判斷您的問題是錯誤的...
嘗試這樣。
$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) {.......
在測試非數字值以查看它們是否為數字之前,請在計算中使用它們。 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;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.