0

我很难让这个 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";

    }

我希望你能理解我的问题。祝你今天过得愉快 :)

4

2 回答 2

0

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

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

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

于 2014-02-12T22:18:32.720 回答
0

你希望它是一个数字 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 ";
}
于 2014-02-12T22:28:29.817 回答