Okai,所以我在我的网站上运行检查并询问了几个人是否可以在我的页面上注册,而且有些人设法在没有设置日期的情况下完成我的注册(它自动转为00-00- 0000)。 这是变量的分配(使用1个常用提交按钮)。
$username = $_POST['username'];
$passwordone = $_POST['passwordone'];
$passwordtwo = $_POST['passwordtwo'];
$name = $_POST['fullname'];
$email = $_POST['email'];
$age = $_POST['date'];
$country = $_POST['country'];
检查变量的语句
if (!empty($username) && !empty($passwordone) && !empty($name) && !empty($email) && !empty($age) && !empty($country)
如何编写此代码,以便在不指定日期的情况下无法完成?
答案 0 :(得分:1)
$pattern = "^[0-9]{4}-(((0[13578]|(10|12))-(0[1-9]|[1-2][0-9]|3[0-1]))|(02-(0[1-9]|[1-2][0-9]))|((0[469]|11)-(0[1-9]|[1-2][0-9]|30)))$";
$date = $_POST['date'];
if (!empty($username) && !empty($passwordone) && !empty($name) && !empty($email) && !empty($age) && !empty($country) && !preg_match($pattern, $date)
只需将此添加到您的验证中即可解决它
答案 1 :(得分:0)
一个简单的替代解决方案。
$date = $_POST['date'];
$date='17-06-2013'; // example
list($d,$m,$y)= explode('-',$date);
if (!empty($username) && !empty($passwordone) && !empty($name) && !empty($email) && !empty($age) && !empty($country) && checkdate($m,$d,$y)===true
答案 2 :(得分:0)
我使用了不同的方法。
如果(strlen的($ _ POST ['日期'] == 10){
echo $ _POST [' date'];
}否则{
回声"请选择日期";
}
答案 3 :(得分:-1)
为什么不使用isset($_POST['date'])
?
如果您想验证日期内容,请参阅 Check if variable is a valid date with PHP