请帮我这个代码..我想要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>';
}
答案 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>';
}