0

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)

我如何编写此代码,以便他们在不指定日期的情况下无法通过?

4

4 回答 4

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)

只需将此添加到您的验证中,它应该可以解决它

于 2013-06-17T11:25:01.910 回答
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
于 2013-06-17T11:58:22.833 回答
0

我使用了不同的方法。

if(strlen($_POST['date']==10){

echo $_POST['date'];

}else{

echo "Please Select Date";

}
于 2017-07-05T04:16:08.800 回答
-1

为什么不使用isset($_POST['date'])

如果您还想验证日期的内容,请参阅 使用 PHP 检查变量是否为有效日期

于 2013-06-17T11:27:50.343 回答