PHP联系人形成多个收件人,收件人列表取决于用户选择 - 复选框

时间:2014-03-14 01:29:06

标签: php html checkbox

我想根据用户选中的复选框,在我的网站上创建联系表单,以选择邮件的收件人。

用户可以选择至少一个收件人(选中一个复选框),最多十二个收件人(12个人可以提出问题 - 用户可以选择与谁联系)。

由于我不熟悉php,我将非常感谢您的帮助。

这是html:

<input class="validate[minCheckbox[1]] checkbox" type="checkbox" name="group1" value="1"></div>
<input class="validate[minCheckbox[1]] checkbox" type="checkbox" name="group1" value="2"></div>
<input class="validate[minCheckbox[1]] checkbox" type="checkbox" name="group1" value="3"></div>
<input class="validate[minCheckbox[1]] checkbox" type="checkbox" name="group1" value="4"></div>
<input class="validate[minCheckbox[1]] checkbox" type="checkbox" name="group1" value="5"></div>
<input class="validate[minCheckbox[1]] checkbox" type="checkbox" name="group1" value="6"></div>
<input class="validate[minCheckbox[1]] checkbox" type="checkbox" name="group1" value="7"></div>
<input class="validate[minCheckbox[1]] checkbox" type="checkbox" name="group1" value="8"></div>
<input class="validate[minCheckbox[1]] checkbox" type="checkbox" name="group1" value="9"></div>
<input class="validate[minCheckbox[1]] checkbox" type="checkbox" name="group1" value="10"></div>
<input class="validate[minCheckbox[1]] checkbox" type="checkbox" name="group1" value="11"></div>
<input class="validate[minCheckbox[1]] checkbox" type="checkbox" name="group1" value="12"></div>

这是php代码:

<?php
if(isset($_POST['email'])) {

    // CHANGE THE TWO LINES BELOW
    $email_to = "me@mydomain.com";

    $email_subject = "";


    function died($error) {
        // your error code can go here
        echo "";
        echo "";
        echo $error."<br /><br />";
        echo "";
        die();
    }

    // validation expected data exists
    if(!isset($_POST['name']) ||
        !isset($_POST['email']) ||
        !isset($_POST['telephone']) ||
        !isset($_POST['comments'])) {
        died(');       
    }

    $name = $_POST['name']; // required

    $email_from = $_POST['email']; // required
    $telephone = $_POST['telephone']; // not required
    $comments = $_POST['comments']; // required

    $error_message = "";
    $email_exp = '/^[A-Za-z0-9._%-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/';
  if(!preg_match($email_exp,$email_from)) {
    $error_message .= '';
  }
    $string_exp = "/^[A-Za-z .'-]+$/";
  if(!preg_match($string_exp,$name)) {
    $error_message .= '';
  }

  if(strlen($comments) < 2) {
    $error_message .= '';
  }
  if(strlen($error_message) > 0) {
    died($error_message);
  }

    function clean_string($string) {
      $bad = array("content-type","bcc:","to:","cc:","href");
      return str_replace($bad,"",$string);
    }

       $email_message .='

//html structure of email goes here
$headers = 'From: '.$email_from."\r\n".
$headers = "MIME-Version: 1.0\r\n";
$headers = "Content-type: text/html; charset=utf-8\r\n";
'Reply-To: '.$email_from."\r\n" .
'X-Mailer: PHP/' . phpversion();
@mail($email_to, $email_subject, $email_message, $headers);  
?>

<!-- success html here -->
<?php
}
die();
?>

它的当前状态中的代码工作得很好(我删除了错误消息和电子邮件的html结构,因为它不相关 - 只会占用空间)但是有固定的收件人(虽然它们在这里的代码中提供$email_to)。

我想更改代码,以便:

  • 用户选择其消息的收件人,有12个选项,min = 1,max = 12。
  • 将通过选中复选框
  • 进行选择
  • 每个复选框都分配给特定的电子邮件

很抱歉在这个&#34;结论&#34;中再次重复自己。 - 我希望它尽可能清楚。另外,对不起我的琐碎问题...

1 个答案:

答案 0 :(得分:1)

如果复选框的值是电子邮件,您只需要使用implode() http://www.php.net/manual/pt_BR/function.implode.php

$emails = implode(",",$_REQUEST['group1']);
$email_to = $emails;