0

首先,我仍然是 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.' );
        }
    }
}

无论我在任何输入字段中输入什么,它总是返回“死”错误。

4

4 回答 4

3

is_float(amount)

应该

is_float($amount)

于 2012-08-31T00:54:03.953 回答
3

$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.' );
        }
    }
}
于 2012-08-31T00:59:26.840 回答
0

在您的代码中打错字。替换is_float(amount)is_float($amount)

于 2012-08-31T00:54:51.973 回答
0

尝试这个。

if(!empty($_POST)) {
    foreach($_POST as $key => $amount) {
        if(!(is_int($amount) && $amount >= 0)) {
            die( 'All data must be positive integers.' );
        }
    }
}
于 2012-08-31T00:58:33.653 回答