首先,我仍然是php的新手,我从这个网站上解决的问题中学到了很多东西,我自己也遇到过这些问题。
我在这里找到了所有原始问题的答案,但当我把它们放在一起时,我无法让代码发挥作用。
我有一个使用PHP_SELF发布到自己的基本表单。我希望检查$_POST数组的所有输入,以确保它是(1)正整数,(2)整数,以及(3)不包括小数。
if( !empty($_POST ) ) {
foreach( $_POST as $key => $amount ) {
if( !is_int($amount) || $amount < 0 || is_float(amount) ) {
die( 'All data must be positive integers.' );
}
}
}
无论我在任何输入字段中键入什么,它总是返回"die"错误。
$amount
是一个字符串,因此is_int
总是失败,请尝试filter_var
而不是
if( !empty($_POST ) ) {
$options = array(
'options' => array(
'min_range' => 0
)
);
foreach( $_POST as $key => $amount ) {
if( filter_var($amount, FILTER_VALIDATE_INT, $options) === false ) {
die( 'All data must be positive integers.' );
}
}
}
is_float(amount)
应该是
is_float($amount)
在代码中键入。将is_float(amount)
替换为is_float($amount)
。
试试这个。
if(!empty($_POST)) {
foreach($_POST as $key => $amount) {
if(!(is_int($amount) && $amount >= 0)) {
die( 'All data must be positive integers.' );
}
}
}