Php 根据输入的选择值发送电子邮件
我需要通过添加一个下拉菜单对现有表单进行更改,在这里我将有两个输入及其值。如果选择了地址1,则将表格发送给收件人一方;如果选择了地址2,则将表格发送给收件人二方。未选择任何内容时,地址1需要为默认值 以下是添加的HTML:Php 根据输入的选择值发送电子邮件,php,arrays,forms,Php,Arrays,Forms,我需要通过添加一个下拉菜单对现有表单进行更改,在这里我将有两个输入及其值。如果选择了地址1,则将表格发送给收件人一方;如果选择了地址2,则将表格发送给收件人二方。未选择任何内容时,地址1需要为默认值 以下是添加的HTML: <form method="post" action="./index.php" enctype="multipart/form-data"> <fieldset class="elist"> <legend>Se
<form method="post" action="./index.php" enctype="multipart/form-data">
<fieldset class="elist">
<legend>Select shop:</legend>
<select name="shop">
<option name="address-chosen" value="Tammsaare" >Tammsaare</option>
<option name="address-chosen" value="Ülemiste" >Ülemiste</option>
</select>
</fieldset>
</form>
选择店铺:
塔姆萨雷
Ülemiste
而PHP:
$action = isset($_POST['action']) ? $_POST['action'] : null;
$page = null;
$pages = array('info', 'en');
if( isset($_GET['page']) && in_array($_GET['page'], $pages) ) {
$page = $_GET['page'];
}
if( !in_array($page, $pages) ) {
$page = '';
}
$mail_sent = false;
if( $action == 'add' ) {
//Test if it is a shared client
if (!empty($_SERVER['HTTP_CLIENT_IP'])){
$ip = $_SERVER['HTTP_CLIENT_IP'];
//Is it a proxy address
}elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])){
$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
}else{
$ip = $_SERVER['REMOTE_ADDR'];
}
$message = '';
$message .= 'Name: '.safe($_POST['name'])."\r\n";
$message .= 'E-mail: '.safe($_POST['email'])."\r\n";
$message .= 'Phone: '.safe($_POST['telephone'])."\r\n";
$message .= 'Mark: '.safe($_POST['mark'])."\r\n";
$message .= 'Model: '.safe($_POST['model'])."\r\n";
$message .= 'Shop: '.safe($_POST['address-chosen'])."\r\n";
$message .= "Wants newsletter: ".$soovib_uudiskirja = isset($_POST['newsletter']) ? "Yes" : "No";
$message .= "\r\n";
$message .= "\r\n";
$message .= "\r\n";
$message .= 'Aeg: '.date('d.m.Y H:i')."\r\n";
$message .= 'IP: '.$ip."\r\n";
$mail_data = array(
'to_email' => 'email@mail.com',
'from_email' => 'email@mail.com',
'from_name' => 'Stock Cars',
'subject' => 'Reservation',
'message' => $message,
);
mail_send($mail_data);
$mail_sent = true;
}
function safe( $name ) {
return( str_ireplace(array( "%0a", "%0d", "Content-Type:", "bcc:","to:","cc:" ), "", $name ) );
}
function mail_send($arr)
{
if (!isset($arr['to_email'], $arr['from_email'], $arr['subject'], $arr['message'])) {
throw new HelperException('mail(); not all parameters provided.');
}
$to = empty($arr['to_name']) ? $arr['to_email'] : '"' . mb_encode_mimeheader($arr['to_name']) . '" <' . $arr['to_email'] . '>';
$from = empty($arr['from_name']) ? $arr['from_email'] : '"' . mb_encode_mimeheader($arr['from_name']) . '" <' . $arr['from_email'] . '>';
$headers = array
(
'MIME-Version: 1.0',
'Content-Type: text/plain; charset="UTF-8";',
'Content-Transfer-Encoding: 7bit',
'Date: ' . date('r', $_SERVER['REQUEST_TIME']),
'Message-ID: <' . $_SERVER['REQUEST_TIME'] . md5($_SERVER['REQUEST_TIME']) . '@' . $_SERVER['SERVER_NAME'] . '>',
'From: ' . $from,
'Reply-To: ' . $from,
'Return-Path: ' . $from,
'X-Mailer: PHP v' . phpversion(),
'X-Originating-IP: ' . $_SERVER['SERVER_ADDR'],
);
mail($to, '=?UTF-8?B?' . base64_encode($arr['subject']) . '?=', $arr['message'], implode("\n", $headers));}
if (isset($_GET['page'])) {}
$action=isset($\u POST['action'])$_POST['action']:空;
$page=null;
$pages=数组('info','en');
if(isset($\u GET['page'])和&in_数组($\u GET['page'],$pages)){
$page=$_GET['page'];
}
如果(!in_数组($page,$pages)){
$page='';
}
$mail_sent=错误;
如果($action=='add'){
//测试它是否是共享客户端
如果(!空($\u服务器['HTTP\u客户端\u IP'])){
$ip=$\服务器['HTTP\客户端\ ip'];
//是代理地址吗
}elseif(!empty($_服务器['HTTP\u X\u FORWARDED\u FOR'])){
$ip=$\服务器['HTTP\u X\u FORWARDED\u'];
}否则{
$ip=$\u服务器['REMOTE\u ADDR'];
}
$message='';
$message.='Name:'.safe($\u POST['Name'])。“\r\n”;
$message.=“电子邮件:”.safe($\u POST['email'])。“\r\n”;
$message.='Phone:'.safe($\u POST['Phone'])。“\r\n”;
$message.='Mark:'.safe($\u POST['Mark'])。“\r\n”;
$message.='Model:'.safe($\u POST['Model'])。“\r\n”;
$message.='Shop:'.safe($\u POST['address-selected'])。“\r\n”;
$message.=“想要时事通讯:”.$soovib_uudiskirja=isset($\u POST['newsletter'])?“是”:“否”;
$message.=“\r\n”;
$message.=“\r\n”;
$message.=“\r\n”;
$message.=“Aeg:”.date('d.m.Y H:i')。“\r\n”;
$message.=“IP:”.$IP.\r\n”;
$mail\U data=数组(
'发送电子邮件'=>'email@mail.com',
'来自电子邮件'=>'email@mail.com',
'from_name'=>'库存汽车',
“主题”=>“预订”,
'message'=>$message,
);
邮件发送(邮件数据);
$mail_sent=真;
}
函数安全($name){
返回(str_ireplace(数组(“%0a”、“0d”、“内容类型:”、“密件抄送:”、“收件人:”、“抄送:”、“,$name));
}
功能邮件发送($arr)
{
如果(!isset($arr['to_email'],$arr['from_email'],$arr['subject'],$arr['message'])){
抛出新的HelperException('mail();未提供所有参数');
}
$to=空($arr['to_name'])?$arr['to_email']:'”。mb_encode_mimeheader($arr['to_name'])。“;
$from=empty($arr['from_name'])?$arr['from_email']:'”。mb_encode_mimeheader($arr['from_name'])。“;
$headers=数组
(
'MIME版本:1.0',
'内容类型:text/plain;charset=“UTF-8”,
'内容传输编码:7bit',
'Date:'.Date('r',$\u服务器['REQUEST\u TIME']),
'消息ID:',
“发件人:”。$From,
“回复:”。$from,
“返回路径:”。$from,
'X-Mailer:PHP v'.phpversion(),
“X-origing-IP:”.$\u服务器['SERVER\u ADDR'],
);
邮件($to,'=?UTF-8?B?')。base64_编码($arr['subject'])。?=',$arr['message'],内爆(“\n”,$headers));}
如果(isset($_GET['page']){}
所以问题是如何重建数组 根据表单值设置电子邮件变量:
//default is email 1
$email='email@mail.com';
if(isset($_POST['shop']) && $_POST['shop']=='Ülemiste') {$email='email2@mail2.com';}
$mail_data = array(
'to_email' => $email,
'from_email' => $email,
'from_name' => 'Stock cars',
'subject' => 'Reservation',
'message' => $message,
);
根据您的编辑进行编辑-不确定umlaut将如何影响事情,尽管您可以更改当前数组以实现这一点。我对PHP不是很在行,我不知道如何使用您的代码而不出现语义问题。现在我已经添加了所有的PHP代码。我更新了我的答案,以更正语法错误并添加一个检查,您应该可以用上面的代码替换现有数组。谢谢您的帮助。