我的PHP文件中包含以下错误处理程序:
if (empty($title) || empty($description) || empty($price)) {
header("Location: ../listing1.php?error=emptyfields");
exit();
} elseif (!is_numeric($price)) {
header("Location: ../listing1.php?error=onlynumbers");
exit();
}
但是当我按照错误处理程序is_numeric
输入时,它返回false告诉它是error=emptyfields
。我尝试过切换位置,但是它仍然返回false,现在我迷路了,尽管当我在0
以上输入内容时,它会返回true。
答案 0 :(得分:0)
PHP的empty()
函数将值0
和"0"
视为空。因此,即使该值是数字并且已正确设置,也仍然会导致错误的行为。
您将需要对第一个if
状况更加小心。不只是考虑empty($price)
,还可以考虑做(empty($price) && $price !== 0 && $price !== "0")
。这是一个冗长得多,更冗长的验证,但应消除该错误。