【发布时间】:2013-05-30 17:20:50
【问题描述】:
我编写了一些 PHP 验证代码来验证出生日期。该代码应该确保输入,(必填字段)格式为DD/MM/YYYY,并且年份必须在 2000 和 2004 之间。
我的代码遇到的问题是它正确检查是否没有输入并转发错误消息,但如果我输入任何随机字符,它会接受它而不检查输入数据的格式或字符。
这是我的代码:
<?php
if (isset($_POST['submit'])) {
$msgd = "";
$dob = $_POST["dob"];
if(strlen($dob) > 0) {
if(substr_count($dob,'/') == 2)
{
list($d,$m,$y) = explode('/',$dob);
if (($y >= 2000 && $y <= 2004))
{
return checkdate($d,$m,$y);
} else {
$msgd = '<span class="error"><b>You must enter a correct date</b></span>';
}
}
} else {
$msgd = '<span class="error"><b>You must enter a date</b></span>';
}
}
?>
<b>Date of Birth</b>
<br>
<input type="text" id="dob" name="dob"><?php echo $msgd; ?>
谁能帮我解决这个问题?
【问题讨论】:
-
我在这里看到
return,但没有函数头。我想知道如果未设置$_POST['submit']会向用户显示什么。 -
或者您可以省去很多麻烦并制作月、日、年下拉菜单。这样你就知道这些值无论如何都是有效的,你只需要验证是否为空。
标签: php validation date