PHP表单验证提交问题

时间:2010-04-08 21:33:49

标签: php mysql

每当我尝试提交表单时,我都没有在年份字段中输入任何内容,我得到Incorrect year!如何在不输入年份的情况下仍然提交表单。换句话说,将年份字段留空并且没有收到警告?

这是PHP代码。

if(preg_match('/^\d{4,}$/', $_POST['year'])) {
    $year = mysqli_real_escape_string($mysqli, $_POST['year']);
} else {
    $year = NULL;
}

if($year == NULL) {
    echo '<p class="error">Incorrect year!</p>';
} else {
    //do something
}

3 个答案:

答案 0 :(得分:1)

if(preg_match('/^\d{4,}$/', $_POST['year'])) {
    $year = mysqli_real_escape_string($mysqli, $_POST['year']);
} else {
    $year = false;
}

if ($year === false) {
    echo '<p class="error">Incorrect year!</p>';
} else {
    //do something
}

OR(如果你没有在其他地方设置YEAR)

if(preg_match('/^\d{4,}$/', $_POST['year'])) {
    $year = mysqli_real_escape_string($mysqli, $_POST['year']);
}

if (!isset($year)) {
     echo '<p class="error">Incorrect year!</p>';
} else {
    //do something
}

答案 1 :(得分:0)

if(preg_match('/^\d{4,}$/', $_POST['year'])) {
    $year = mysqli_real_escape_string($mysqli, $_POST['year']);
} else if(empty($_POST['year'])){
    $year = '';
} else {
    $year = null;
} 

if($year == NULL) {
    echo '<p class="error">Incorrect year!</p>';
} else {
    //do something
}

也许我误解了,但这听起来像你想要的。

答案 2 :(得分:-1)

嘿,你可以把这一部分拿出去,它会把回声带出来,允许你提交字段为空白

if($year == NULL) {
    echo '<p class="error">Incorrect year!</p>';
} else {
    //do something
}

我不建议允许它进入数据库。也许您可以只获取服务器上的默认日期或默认值,这意味着用户没有填写它。这会消除错误,但仍会在数据库字段中留下一些内容。