我遇到麻烦让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";
}
我希望你理解我的问题。祝你有愉快的一天:)
答案 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 ";
}