【问题标题】:Checking input type=date in if statement (empty or !empty)检查 if 语句中的输入类型 = 日期(空或!空)
【发布时间】:2013-06-13 07:58:44
【问题描述】:

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)

我怎样才能编写这段代码,这样他们就无法在没有指定日期的情况下通过?

【问题讨论】:

  • 你得到了什么var_dump($age);?因为您当前的代码看起来不错,如果数据字段为空,它将不允许用户通过。
  • 不添加任何东西我得到一个 0。
  • 使用!empty(strtotime($age));

标签: php date input


【解决方案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)

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

【讨论】:

  • 我是创建一个新变量还是将其添加到我的 $age 变量中?
【解决方案2】:

一个简单的替代解决方案。

$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

【讨论】:

    【解决方案3】:

    我使用了不同的方法。

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

    回显 $_POST['date'];

    }其他{

    echo "请选择日期";

    }

    【讨论】:

      【解决方案4】:

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

      如果您还想验证日期的内容,请参阅 Check if variable is a valid date with PHP

      【讨论】:

      • 这会和 !empty 一样吗?如果我得到一个字符串值 0 如果没有任何更改,则意味着它已被设置。所以理论上有 !empty 更安全。
      猜你喜欢
      • 1970-01-01
      • 2022-10-21
      • 2017-08-20
      • 2023-04-08
      • 1970-01-01
      • 1970-01-01
      • 2019-04-17
      • 1970-01-01
      • 2020-09-22
      相关资源
      最近更新 更多