我的問題非常簡單。我需要驗證用戶輸入3個整數值,每個值在0到100之間,或者輸出錯誤消息。在PHP中驗證數據類型和範圍的表單輸入
現在錯誤信息正常工作,但是當我輸入3個正確的數字時,仍然出現錯誤。
<?php
// get the data from the form
$grade1 = $_POST["grade1"];
$grade2 = $_POST["grade2"];
$grade3 = $_POST["grade3"];
// TEST FOR INTEGER
if (!is_int($grade1) || !is_int($grade2) || !is_int($grade3)) {
$error_message = 'Please enter three numeric grades.';
}
// TEST FOR RANGE
if ($grade1 < 0 || $grade1 > 100 || $grade2 < 0 || $grade2 > 100 || $grade3 < 0 || $grade3 > 100) {
$error_message = 'You must enter grades between 0 and 100.';
}
if ($error_message != '') {
include('index.php');
exit();
}
// calculate grade average
$average = ($grade1 + $grade2 + $grade3)/3;
$average_f = number_format($average, 0);
// calculate letter grade
if ($average >= 90 && $average <= 100) {
$letter = "A";
} else if ($average >= 80 && $average < 90) {
$letter = "B";
} else if ($average >= 70 && $average < 80) {
$letter = "C";
} else if ($average >= 60 && $average < 70) {
$letter = "D";
} else if ($average >= 0 && $average < 60) {
$letter = "F";
}
?>
我希望可以很容易地告訴我想要做的,怎麼我做它。在此先感謝您的建議:)
錯誤消息包含什麼內容?你有沒有嘗試初始化變量:'$ error_message ='''? –
那麼,如果有錯誤?什麼不工作?如果沒有設置捕捉和顯示,使用錯誤報告http://php.net/manual/en/function.error-reporting.php –
不檢查與'is_int()',這與PHP變量,但與用戶輸入因爲$ _POST和$ _GET是字符串。你可以使用'is_numeric()'實際上用戶瀏覽器提交的所有內容都是字符串。我爲此做出了答案.. – Xorifelse