PHP表单至少选择复选框

时间:2014-04-17 17:47:21

标签: php checkbox formmail

我一直在处理一个formmail,我正试图让两个复选框工作。我可以让他们回应正确的信息,但我希望用户在没有选中至少一个复选框时收到警报。这是我的代码:

HTML

<td>
     <input type="checkbox" name="date1" value="Yes">July 7-11
</td>
<td>
     <input type="checkbox" name="date2" value="Yes">July 14-18
<td>

PHP

$date1 = $_POST['date1']; // required
$date2 = $_POST['date2']; // required

    $string_exp = "/^[A-Za-z .'-]+$/";
  if(!preg_match($string_exp,$date1)) {
    $error_message .= 'You did not choose a date.<br />';
  }

    $string_exp = "/^[A-Za-z .'-]+$/";
  if(!preg_match($string_exp,$date2)) {
    $error_message .= 'You did not choose a date.<br />';
  }

$email_message .= "July 07-11: ".clean_string($date1)."\n"; 
$email_message .= "July 14-18: ".clean_string($date2)."\n";

它让我在发送电子邮件之前选中这两个复选框。我已经尝试过输入有两个值并强制至少一个,但我似乎无法使用任何东西。

1 个答案:

答案 0 :(得分:0)

如果未选中,则复选框未设置为任何内容。如果选中,则您知道该值 - 已发送。所以,你只需要检查它们是否已经设置好。

if(!isset($_POST['date1']) && !isset($_POST['date2']))
    $error_message = 'You did not choose a date.<br>';

注意:这并不能确保某人使用该表单。我可以用我自己的形式硬编码我自己的date1和date2值,并提交到你的网站。