0

我一直在处理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";

它让我在发送电子邮件之前选择两个复选框。我试过让输入有两个值并强制至少一个,但我似乎无法得到任何工作。

4

1 回答 1

0

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

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

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

于 2014-04-17T17:56:49.167 回答