使用带有$ _POST的if语句中使用php checkdate函数的问题

时间:2014-03-01 03:05:24

标签: php function validation

我有联系表格

<form method="POST" action="<?php echo htmlentities($_SERVER['PHP_SELF']); ?>" class="contact" autocomplete="on">
<input type="text" name="bot" class="hidden">
<table class="contact">
<tr>
    <th><label for="name">Name: </label></th>
    <td><input type="text" name="name" placeholder="Yournamehere" 
    value="<?php echo $_POST['name'];?>" /> </td>
</tr>
<tr>
    <th><label for="date">Date: </label></th>
    <td><input type="text" name="date" placeholder="mm/dd/yyyy" 
    value="<?php echo $_POST['date'];?>" /></td>
</tr>
<tr>
    <th><label for="message">Comments: </label></th>
    <td>
        <textarea name="message" rows="10" cols="20"><?php echo $_POST['message'];?></textarea>
    </td>
</tr>
<tr>
    <td></td> 
    <td>

        <input type="submit" value="Submit" name="submit">
        &nbsp;&nbsp;<input type="reset" value="Reset"/>
    </td>
</tr>

共有6个字段,但我没有在代码中包含所有字段,因为它们无关紧要。基本上我试图用PHP中的checkdate函数验证日期字段,但我不能在我的生活中弄清楚如果$ _POST ['date']是有效日期,如何检查if语句。我不知道我是否可以这样做,因为我有日期的文本字段?这就是我到目前为止所拥有的PHP ...它不是很好lol

<?php
    $fields = array($_POST['name'], $_POST['email'], $_POST['phone'], 
    $_POST['occasion'], $_POST['date'], $_POST['location'], $_POST['message']);

    if (checkdate($month, $day, $year) == false) {
        $error[4] = "Please enter a valid date";
    }
?>

我不知道如何将put fields [4]放在某处以检查用户键入的内容。我看过this示例,它有所帮助,但似乎有所不同,因为我只有一个字段而不是三个......请帮助!

1 个答案:

答案 0 :(得分:0)

如果您确定您的用户要以正确的格式(mm / dd / yyyy)提交日期,您可以执行以下操作:

<?php
    $date = explode("/", $_POST["date"]);
    if (checkdate((int)$date[0], (int)$date[1], (int)$date[2]) == false) {
        $error[4] = "Please enter a valid date";
    }
?>

尽管如此,您应该检查输入格式是否正确,查看正则表达式。