3

ユーザーが整数値を入力できる特定の入力を検証しようとしています...そうしないと、エラーメッセージが実行されます

$user_mcc = $_REQUEST['mobile_countrycode'];
if($user_mcc == ""){
    is_numeric($_REQUEST['mobile_countrycode']);
}

if (!is_numeric($_REQUEST['mobile_countrycode'])){

    echo '<script type="text/javascript">alert("Not a numeric value!\n\nMake sure that your country codes, area codes\nand mobile/fax/phone numbers are correct! \n"); return true;</script>';
    echo '<script type="text/javascript">history.back();</script>'; 
    die('' . mysql_error());



}

、、、などemptyの多くの関数を試しましたが、機能しませんでした。is_null== NULL== 'NULL

たとえば、入力したように文字列値を入力テキストフィールドに入力すると、入力された値は数値ではなく、であるため、上記"Banana"!is_numeric関数を実行できFALSEます。

ただし、入力フィールドを空のままにしておくと、値が数値ではないものとして認識されるようにNULL、関数を実行できます。入力値が。の場合、関数をバイパスするにはどうすればよいですか。ありがとうございました。!is_numericNULL!is_numericNULL

PS:!is_int私はすでに、、!is_integerを試しましたが、同じ結果になり、 NULLctype_digitを受け入れませんでした。

4

4 に答える 4

6

これはおそらく、が数値null ではないためです。それは無効です。それは何もありません、そしてそれは確かに整数0と等しくありません。数値またはnullをチェックしたい場合、それはまさにあなたがすべきことです:

if( $yourvalue !== null && !is_numeric( $yourvalue ) ) {
}
于 2012-08-08T08:24:13.463 に答える
0

私は、それはこのコードで動作すると思います:

$isNumeric = false;
// Verify your var exist
if (isset($_REQUEST['mobile_countrycode'])){    
    // if var exist, you create $user_mcc
    $user_mcc = $_REQUEST['mobile_countrycode'];

    // test empty and null values [ == if(!empty($user_mcc) ]
    if (("" != $user_mcc) && ( NULL != $user_mcc)){
        // if value is not NULL and not empty test if value is numeric...
        if (is_numeric($user_mcc)){
            // Your value is Numeric
            $isNumeric = true;
        }
    }
}

その後、値が数値でない場合は、$isNumericbooleanを使用できます。

if (!$isNumeric){ // [ == if ( $user_mcc is not numeric ^^ ) ]
    echo '<script type="text/javascript">alert("Not a numeric value!\n\nMake sure that your country codes, area codes\nand mobile/fax/phone numbers are correct! \n"); return true;</script>';
    echo '<script type="text/javascript">history.back();</script>'; 
    die('' . mysql_error());
}

より多くのサンプルまたは詳細については、 Php.netのこのページを読むことができます(それらは多くのサンプルです)

于 2012-08-08T08:15:23.493 に答える
0

これを行うだけです:

function is_numeric_not_null($var) {
    return(($var != "") && ($var != NULL) && is_numeric($var));
}

$user_mcc = $_REQUEST['mobile_countrycode'];

if (!is_numeric_not_null($user_mcc)){

    echo '<script type="text/javascript">alert("Not a numeric value!\n\nMake sure that your country codes, area codes\nand mobile/fax/phone numbers are correct! \n"); return true;</script>';
    echo '<script type="text/javascript">history.back();</script>'; 
    die(mysql_error());
}
于 2012-08-08T08:23:53.730 に答える
0

これを行うだけです:

$user_mcc = empty($_REQUEST['mobile_countrycode']) ? null : $_REQUEST['mobile_countrycode'];

if (null === $user_mcc || !is_numeric($user_mcc)) {
    // Not a numeric value
}
于 2012-08-08T08:30:05.820 に答える