2012-04-01 108 views
0

我有一种表单需要根据用户在联系表单中选择的位置转到不同的所有者。我正在使用一个模板,并且已经能够编辑这些字段,让它们成为我想要的值,但是很难设法弄清楚如何将它传递给正确的人。根据下拉选择发送电子邮件给唯一的人

<?php 

if(!$_POST) exit; 

$email = $_POST['email']; 

//$error[] = preg_match('/\b[A-Z0-9._%-][email protected][A-Z0-9.-]+\.[A-Z]{2,4}\b/i', $_POST['email']) ? '' : 'INVALID EMAIL ADDRESS'; 
if(!eregi("^[a-z0-9]+([_\\.-][a-z0-9]+)*" ."@"."([a-z0-9]+([\.-][a-z0-9]+)*)+"."\\.[a-z] {2,}"."$",$email)){ 
$error.="Invalid email address entered"; 
$errors=1; 
} 
if($errors==1) echo $error; 
else{ 
$values = array ('location','name','email','phone','message'); 
$required = array('location','name','email','phone','message'); 

$your_email = "[email protected]"; 
$email_subject = "New Message: ".$_POST['subject']; 
$email_content = "new message:\n"; 

foreach($values as $key => $value){ 
    if(in_array($value,$required)){ 
    if(empty($_POST[$value])) { echo 'PLEASE FILL IN REQUIRED FIELDS'; exit; } 
    $email_content .= $value.': '.$_POST[$value]."\n"; 
    } 
} 

if(

if(@mail($your_email,$email_subject,$email_content)) { 
    echo 'Message sent!'; 
} else { 
    echo 'ERROR!'; 
} 
    } 
?> 

我想根据Location下拉菜单更改$ your_email所指向的人。并且总是CC一个特定的人。

形式是: http://amazinggaragefloors-net.si-sv3641.com/contactus.html

回答

3
$email_location = $_POST['location']; // the value from your form 

if($email_location == "Atlanta") { // a form value and a location 
    $your_email = "[email protected]"; // the email for that location 
} else if ($email_location == "Colorado") { 
    $your_email = "[email protected]"; 
} else if ($email_location == "Virginia") { 
    $your_email = "[email protected]"; 
} else if ($email_location == "Kansas City") { 
    $your_email = "[email protected]"; 
} else { // if no one is good, send it to this email 
    $your_email = "[email protected]"; 
} 

将这个在地方$ your_email = “[email protected]”;并且您将开始运行:)请注意,您不会让用户控制特定的电子邮件地址,因为它可能会用于发送垃圾邮件。始终使用静态引用,就像现在位置引用一样。

0

我收到了ArendE的回复,​​并将他的智慧应用于我刚创建的表单。

/contactengine.php我在此代码插入(替换线路#4):

$Email_Query = $_POST['Query']; // the value from your form 

if($Email_Query == "Publishing") { // a form value and a location 
    $EmailTo = "[email protected]"; // the email for that location 
} else if ($Email_Query == "Custom Programs") { 
    $EmailTo = "[email protected]"; 
} else if ($Email_Query == "Events") { 
    $EmailTo = "[email protected]"; 
} else if ($Email_Query == "Subscriptions") { 
    $EmailTo = "[email protected]"; 
} else { // if no one is good, send it to this email 
    $EmailTo = "[email protected]"; 
} 

我再次加入此代码到上述相同的文件(在第5行之后)

$Query = Trim(stripslashes($_POST['Query'])); 

而且,我将此代码添加到同一个文件之上(后19行)

$Body .= "Query: "; 
$Body .= $Query; 

我添加了一个下拉列表,以我的方式:

<select id="Query" name="Query"> 
    <option value="Publishing" name="Query1">Publishing</option> 
    <option value="Custom Programs" name="Query2">Custom Programs</option> 
    <option value="Events" name="Query3">Events</option> 
    <option value="Subscriptions" name="Query4">Subscriptions</option> 
</select> 

奇妙!干得好,你的设置和准备摇滚...

感谢您的关注,

附:我不相信发送“CC”电子邮件。在我的表单测试中,我从未收到过一个,但是,我对结束else语句感到满意。

相关问题