根据单选按钮输入表单到不同的收件人

时间:2014-11-07 08:31:12

标签: javascript php

我再也想不到了,试图让这项工作陷入困境。我有两个单选按钮,如何将表单发送到两个电子邮件地址中的一个,具体取决于单击的按钮。我是php的一个白痴,谢谢你。

HTML

<div class="col-md-8 contact-top">
              <h3>Book here Online!</h3>
              <form method="post" action="FormtoEmail/FormtoEmail.php">
                 <form role="form">
 <div class="form-group">
    <label for="name">Name:</label>
    <input type="name" class="form-control" id="name" placeholder="Name">
  </div> <div class="form-group">
    <label for="email">Email address:</label>
    <input type="email" class="form-control" id="email" placeholder="Email">
  </div>
  <div class="form-group">
    <label for="subject">Subject:</label>
    <input type="subject" class="form-control" id="subject" placeholder="Subject">
  </div>
  <div class="radio">
  <label><input type="radio" name="recipients" value="recipient_1">Booking Accommodation</label>
</div>
<div class="radio">
  <label><input type="radio" name="recipients" value="recipient_2" >Booking Conference</label>
</div>
  <div class="form-group">
    <textarea rows="11" name="message" id="message" class="form-control" placeholder="Details"></textarea>
  </div>
  <button type="submit" class="btn btn-default">Submit</button>
</form>
            </div>

我的php

<?php

$my_email = "info@westcoastwebdesign.biz";


$continue = "/";



$errors = array();

// Remove $_COOKIE elements from $_REQUEST.

if(count($_COOKIE)){foreach(array_keys($_COOKIE) as $value){unset($_REQUEST[$value]);}}

// Check all fields for an email header.

function recursive_array_check_header($element_value)
{

global $set;

if(!is_array($element_value)){if(preg_match("/(%0A|%0D|\n+|\r+)(content-type:|to:|cc:|bcc:)/i",$element_value)){$set = 1;}}
else
{

foreach($element_value as $value){if($set){break;} recursive_array_check_header($value);}

}

}

recursive_array_check_header($_REQUEST);

if($set){$errors[] = "You cannot send an email header";}

unset($set);

// Validate email field.

if(isset($_REQUEST['email']) && !empty($_REQUEST['email']))
{

if(preg_match("/(%0A|%0D|\n+|\r+|:)/i",$_REQUEST['email'])){$errors[] = "Email address may not contain a new line or a colon";}

$_REQUEST['email'] = trim($_REQUEST['email']);

if(substr_count($_REQUEST['email'],"@") != 1 || stristr($_REQUEST['email']," ")){$errors[] = "Email address is invalid";}else{$exploded_email = explode("@",$_REQUEST['email']);if(empty($exploded_email[0]) || strlen($exploded_email[0]) > 64 || empty($exploded_email[1])){$errors[] = "Email address is invalid";}else{if(substr_count($exploded_email[1],".") == 0){$errors[] = "Email address is invalid";}else{$exploded_domain = explode(".",$exploded_email[1]);if(in_array("",$exploded_domain)){$errors[] = "Email address is invalid";}else{foreach($exploded_domain as $value){if(strlen($value) > 63 || !preg_match('/^[a-z0-9-]+$/i',$value)){$errors[] = "Email address is invalid"; break;}}}}}}

}

// Check referrer is from same site.

if(!(isset($_SERVER['HTTP_REFERER']) && !empty($_SERVER['HTTP_REFERER']) && stristr($_SERVER['HTTP_REFERER'],$_SERVER['HTTP_HOST']))){$errors[] = "You must enable referrer logging to use the form";}

// Check for a blank form.

function recursive_array_check_blank($element_value)
{

global $set;

if(!is_array($element_value)){if(!empty($element_value)){$set = 1;}}
else
{

foreach($element_value as $value){if($set){break;} recursive_array_check_blank($value);}

}

}

recursive_array_check_blank($_REQUEST);

if(!$set){$errors[] = "You cannot send a blank form";}

unset($set);

// Display any errors and exit if errors exist.

if(count($errors)){foreach($errors as $value){print "$value<br>";} exit;}

if(!defined("PHP_EOL")){define("PHP_EOL", strtoupper(substr(PHP_OS,0,3) == "WIN") ? "\r\n" : "\n");}

// Build message.

function build_message($request_input){if(!isset($message_output)){$message_output ="";}if(!is_array($request_input)){$message_output = $request_input;}else{foreach($request_input as $key => $value){if(!empty($value)){if(!is_numeric($key)){$message_output .= str_replace("_"," ",ucfirst($key)).": ".build_message($value).PHP_EOL.PHP_EOL;}else{$message_output .= build_message($value).", ";}}}}return rtrim($message_output,", ");}

$message = build_message($_REQUEST);

$message = $message . PHP_EOL.PHP_EOL."-- ".PHP_EOL."";

$message = stripslashes($message);

$subject = "Out of Africa Town Lodge Contact Form";

$headers = "From: " . $_POST['email'];
$recipients = array(

'recipient_1' => 'info@westcoastwebdesign.biz', 
'recipient_2' => 'westcoastwebdesign77@gmail.com'

);

$my_email = $recipients[$_REQUEST['recipient']];

mail($my_email,$subject,$message,$headers);

?>

3 个答案:

答案 0 :(得分:0)

您需要使用radio按钮组,其中name具有相同但值不同的电子邮件ID

<div class="radio">
   <label><input type="radio" name="recipients" value="recipient_1@email.com">
        Booking Accommodation
   </label>
</div>
<div class="radio">
   <label><input type="radio" name="recipients" value="recipient_2@email.com" >
        Booking Conference
   </label>
</div>

这样你可以从两个无线电中选择一个

FormtoEmail.php中的

//use post to get the email id
$to = $_POST['recipients'];

并使用PHPMailer发送邮件,这是一个很棒的图书馆,可以让您的生活更轻松

答案 1 :(得分:0)

您可以使用此代码:

<?php
if(isset($_POST['recipients']) && $_POST['recipients'] == 'recipient_1') {
   // send to recipient_1
} else {
   // send to recipient_2
}
?>

答案 2 :(得分:0)

  $my_email = $recipients[$_REQUEST['recipient']];

$ _REQUEST变量中有一个拼写错误,它会是$ recipients [$ _ REQUEST [&#39; recipients&#39;]];

希望它现在可以运作。无论如何,这可能更容易完成。