PHP表单至少选择复选框


PHP form choose at least checkboxes

我一直在处理一个表单邮件,我正在尝试使用两个复选框。我可以让他们回显正确的信息,但我希望用户在没有选中至少一个复选框时得到提醒。这是我的代码:

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";

它让我在发送电子邮件之前同时选中两个复选框。我试过让输入有两个值,并强制至少有一个值,但我似乎什么都做不到。

如果未选中复选框,则不会将其设置为任何值。如果选中,您就知道该值-它已发送。因此,您只需要检查它们是否已设置。

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

注意:这并不能确保有人使用该表单。我可以在提交到您网站的自己的表单中硬编码date1和date2的值。