Форма для разных получателей на основе переключателя ввода

0

Я больше не могу думать, застрял, пытаясь сделать эту работу. У меня есть два переключателя, как отправить форму на один из двух адресов электронной почты в зависимости от нажатой кнопки. Благодарю вас, я полный идиот на 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 = "[email protected]";


$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' => '[email protected]', 
'recipient_2' => '[email protected]'

);

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

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

?>
Теги:

3 ответа

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

В переменной $ _REQUEST есть опечатка, это будут $ получатели [$ _ REQUEST ['recipients']];

Надеюсь, теперь это сработает. Во всяком случае, это легче сделать.

0

Возможно, вы хотите использовать этот код:

<?php
if(isset($_POST['recipients']) && $_POST['recipients'] == 'recipient_1') {
   // send to recipient_1
} else {
   // send to recipient_2
}
?>
  • 0
    Я включил свой PHP, пожалуйста, посмотрите?
  • 0
    Посмотрите свой html, вам нужно $my_email = $recipients[$_REQUEST['recipients']]; не $my_email = $recipients[$_REQUEST['recipient']]; , Разница составляет $_REQUEST['recipients']
0

Вы должны использовать radio кнопку группу с таким же name, но значением с различным электронным идентификатором

<div class="radio">
   <label><input type="radio" name="recipients" value="[email protected]">
        Booking Accommodation
   </label>
</div>
<div class="radio">
   <label><input type="radio" name="recipients" value="[email protected]" >
        Booking Conference
   </label>
</div>

Таким образом, вы можете выбрать один из двух радиостанций

в FormtoEmail.php

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

и отправить почту с помощью PHPMailer, его большой библиотеки и облегчит вашу жизнь

Ещё вопросы

Сообщество Overcoder
Наверх
Меню