从下拉列表中将电子邮件发送到所选名称

时间:2017-09-11 15:41:07

标签: php html email

我有一个向经理发送电子邮件的表单。我想创建一个用户可以发送电子邮件的经理下拉列表。我想知道是否可以根据下拉列表中的所选名称更改$的值。

这是我的PHP代码:

<?php
if(!isset($_POST['submit']))
{
	//This page should not be accessed directly. Need to submit the form.
	echo "error; you need to submit the form!";
}
$name = $_POST['name'];
$visitor_email = $_POST['email'];
$message = $_POST['message'];

//Validate first
if(empty($name)||empty($visitor_email)) 
{
    echo "Name and email are mandatory!";
    exit;
}

if(IsInjected($visitor_email))
{
    echo "Bad email value!";
    exit;
}

$email_from = 'renzoandredg@gmail.com';//<== update the email address
$email_subject = "New Form submission";
$email_body = "You have received a new message from the user $name.\n".
    "Here is the message:\n $message".
    
$to = "renzoandredg@gmail.com";//<== update the email address
$headers = "From: $email_from \r\n";
$headers .= "Reply-To: $visitor_email \r\n";
//Send the email!
mail($to,$email_subject,$email_body,$headers);
//done. redirect to thank-you page.
header('Location: thank-you.html');


// Function to validate against any email injection attempts
function IsInjected($str)
{
  $injections = array('(\n+)',
              '(\r+)',
              '(\t+)',
              '(%0A+)',
              '(%0D+)',
              '(%08+)',
              '(%09+)'
              );
  $inject = join('|', $injections);
  $inject = "/$inject/i";
  if(preg_match($inject,$str))
    {
    return true;
  }
  else
    {
    return false;
  }
}
   
?> 

PS:忘记表单,我只想知道我的问题是否适用。

3 个答案:

答案 0 :(得分:0)

这个问题与PHP无关。 是的,你可以这样做,你可以使用HTML datalist自动完成输入。 https://www.w3schools.com/tags/tag_datalist.asp

还有一些更好的JS插件可以做到这一点。 像这样:https://bootstrap-tagsinput.github.io/bootstrap-tagsinput/examples/

如果你需要,可以在php端使用explode删除逗号/空格,并将结果作为数组获取,以便根据需要形成它。

P.S。:Stackoverflow不是一个开发论坛。你应该在谷歌搜索基本问题。

答案 1 :(得分:0)

当然,简单的做$ to = $ _POST ['email_from_drop_memu'];

答案 2 :(得分:0)

是。这是可能的,而且很容易实现。

在HTML表单中,添加以下代码:

<select name="emailTo">
    <option value="email1@yahoo.com">Email 1 </option>
    <option value="email2@gmail.com">Email w</option>
</select>

PHP文件中的$ to应该是这样的:

$to = $_POST['emailTo'];