Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/251.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 根据输入的选择值发送电子邮件_Php_Arrays_Forms - Fatal编程技术网

Php 根据输入的选择值发送电子邮件

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

我需要通过添加一个下拉菜单对现有表单进行更改,在这里我将有两个输入及其值。如果选择了地址1,则将表格发送给收件人一方;如果选择了地址2,则将表格发送给收件人二方。未选择任何内容时,地址1需要为默认值

以下是添加的HTML:

<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代码。我更新了我的答案,以更正语法错误并添加一个检查,您应该可以用上面的代码替换现有数组。谢谢您的帮助。