我的联系表格有问题

时间:2014-01-20 04:20:13

标签: php forms email contact

我的联系表格有点麻烦。它正在向我的服务器发送电子邮件,但不知何故它没有从"email"字段中获取信息。相反,我在"From:"字段中得到的是我在服务器上的地址,如下所示:"muzedima@box693.bluehost.com"。它也没有从“名称”字段中获取信息。我做错了什么?另外,我试图让主题行说出发件人的名字,但我失败了,是否有可能?

这是HTML:

    <div class="large-7 medium-10 small-12 medium-centered large-centered column">
        <div class="row">
            <form method="post" action="email2.php">

                    <input type="text" name="name" class="defaultText" title="your name">
                    <input type="text" name="email" class="defaultText" title="your email address">


                    <textarea name="comments1" class="defaultText" title="Tell us about your business"></textarea>
                    <textarea name="comments2" class="defaultText" title="How can we help?"></textarea>


               <div class="large-7 medium-10 small-12 medium-centered large-centered column">
                    <input type="submit" name="send message" value="Send Message">
                </div>
            </form>
        </div>
    </div>

这是PHP脚本:

<?php
if (isset($_POST['email']))
//if "email" is filled out, send email
  {
  //send email
$to      = 'info@muzedimage.com';
$name    = $_POST['name'] ; 
$email   = $_POST['email'] ;
$subject = 'Inquiry from $name'; 
$comments1 = $_POST['comments1'] ;
$comments2 = $_POST['comments2'] ; 
$message = $comments1 .  "\n\n" . $comments2;
$headers = "From: $name,  $email";

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

  echo "<script>window.location = 'http://www.muzedimage.com'</script>";
  }
else
//if "email" is not filled out,
  {
  echo "Oops!, you forgot your email!";

  }
?>

谢谢你们!

2 个答案:

答案 0 :(得分:1)

PHP变量不在单引号内评估,只是双引号,因此更改以下内容:

$subject = 'Inquiry from $name'; 
//to
$subject = "Inquiry from $name"; 

同样对于电子邮件部分,你没有做任何事情......所以用它做点什么。

$message = $comments1 .  "\n\n" . $comments2 . "\n\n" . $email;

现在它也发送电子邮件。

答案 1 :(得分:0)

Ohgodwhy已经指出了代码中的一个问题,所以我不打算重复它。

关于您收到From:作为"muzedima@box693.bluehost.com"的原因是因为这一行:

$headers = "From: $name,  $email";

它必须是这样的:

$headers = "From: $name <$email>\r\n";

$email变量必须由<>封装,最好以\r\n

结束

测试并使用Ohgodwhy's答案和我的答案。