【问题标题】:PHP SQL Allow empty or numeric input fieldPHP SQL 允许空或数字输入字段
【发布时间】:2014-02-12 22:14:52
【问题描述】:

我无法让这个 if 语句正常工作。我不希望 POST 字段“reference_nr”能够包含空值或数值。这是我的代码:

    if(!preg_match("/([\w\-]+\@[\w\-]+\.[\w\-]+)/",$_POST['faktura_email'])||
    !is_numeric($_POST['skadesnummer'])||
    !is_numeric($_POST['faktura_aar'])||
    (strlen($_POST['faktura_aar']) > 4)||
    !is_numeric($_POST['faktura_nr'])||
    (strlen($_POST['faktura_nr']) > 3)||
    !is_numeric($_POST['debitor'])||
    !is_numeric($_POST['reference_nr'])){

        print "Query fail";

    } else {

        print "Query success";

    }

希望您能理解我的问题。祝你有美好的一天:)

【问题讨论】:

    标签: php sql if-statement string isnumeric


    【解决方案1】:

    你希望它是一个数字 is_numeric() 做这项工作,如果你想让它为空 !isset() 这样做:

    if( is_numeric($_POST['reference_nr']) || isset($_POST['reference_nr'])){
        echo "referece_nr is numeric or empty";
     }else{
       echo "it's not ";
    }
    

    【讨论】:

      【解决方案2】:

      在尝试访问参数之前,您应该检查参数是否已设置。你可以使用

      if(isset($_POST['param_name']))
        $val = $_POST['param_name'];
      else
        $val = null;
      

      然后对变量进行任何其他数据验证。

      【讨论】:

        猜你喜欢
        • 2014-09-14
        • 1970-01-01
        • 1970-01-01
        • 2018-03-06
        • 2017-01-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多