如何将文本框中的年份设置为1970以上

时间:2014-01-02 16:59:58

标签: php validation

请帮我这个代码..我想要1970年及以上的年份文本框,必须是数字不能为空

    if(is_numeric($_POST['DateOfBirth_Year'])){
    $DateOfBirth_Year = $_POST['DateOfBirth_Year'];
}
else if (is_numeric($_POST['DateOfBirth_Year'] < '1970')){
    echo '<p><font color = "red">Please enter the year above 1970!</font></p>';
}


else {

    echo '<p><font color="red">Enter NUMBER for the year of date of birth!</font></p>';
}

4 个答案:

答案 0 :(得分:1)

if(is_numeric($_POST['DateOfBirth_Year']) && $_POST['DateOfBirth_Year'] > 1970) {
    // it's ok
} else {
    // not ok
}

这是你想要的吗?

答案 1 :(得分:0)

为了更好地验证年份,您最好定义一系列可以按年份获得的数字:

$years = range(1970,2000); // for example

并检查发布的年份是否在数组中:

in_array($_POST['DateOfBirth_Year'], $years);

所以你的最后一个代码可能是:

$years = range(1970,2000);
if (!in_array($_POST['DateOfBirth_Year'], $years))
{
    echo '<p><font color = "red">Please enter the year above 1970!</font></p>';
}

您不需要其他冗余代码。

答案 2 :(得分:0)

if ( $_POST['DateOfBirth_Year'] < 1970 ){
  echo '<p><font color = "red">Please enter the year above 1970!</font></p>';

}else{
  echo '<p><font color="red">Enter NUMBER for the year of date of birth!</font></p>';
}

在您的第二个if语句中,is_numeric($_POST['DateOfBirth_Year'] < '1970')正在测试比较结果$_POST['DateOfBirth_Year'] < '1970'是否为数字。 is_numeric的测试是不必要的。

为什么你有第一个if声明?您不在代码中引用$ DateOfBirth_Year。

if(is_numeric($_POST['DateOfBirth_Year'])){
  $DateOfBirth_Year = $_POST['DateOfBirth_Year'];
}

答案 3 :(得分:0)

这是一个解决方案,

if(
  (is_numeric($_POST['DateOfBirth_Year']))&&
  ((int)($_POST['DateOfBirth_Year'])<1970)
 )
 {
     echo '<p><font color = "red">Please enter the year above 1970!</font></p>';
 }
 else {
      echo '<p><font color="red">Enter NUMBER for the year of date of birth!</font></p>';
     }