我一直在处理一个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";
它让我在发送电子邮件之前选中这两个复选框。我已经尝试过输入有两个值并强制至少一个,但我似乎无法使用任何东西。
答案 0 :(得分:0)
如果未选中,则复选框未设置为任何内容。如果选中,则您知道该值 - 已发送。所以,你只需要检查它们是否已经设置好。
if(!isset($_POST['date1']) && !isset($_POST['date2']))
$error_message = 'You did not choose a date.<br>';
注意:这并不能确保某人使用该表单。我可以用我自己的形式硬编码我自己的date1和date2值,并提交到你的网站。