PHP SQL允许空或数字输入字段

时间:2014-02-12 22:14:52

标签: php sql if-statement string isnumeric

我遇到麻烦让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";

    }

我希望你理解我的问题。祝你有愉快的一天:)

2 个答案:

答案 0 :(得分:0)

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

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

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

答案 1 :(得分: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 ";
}