PHP&;HTML Mailer仅在正文中发送一个参数


PHP & HTML Mailer Only Sending One Parameter in the Body

这是我第一次在这里发帖,如果我没有正确使用代码格式,请原谅。另外,PHP不是我的强项。

我正试图用HTML和PHP发送一封用户填充的电子邮件。我已经成功发送了电子邮件,但电子邮件正文有问题。电子邮件中只有电话号码,没有其他内容,没有姓名、电子邮件或信息。有什么想法吗?

我知道参数正在被填充。我查看页面,并通过Firefox上的Firebug观看网络事件。参数正在传递给PHP,我相当确定。

//building message body
$name = $_POST['name'];
$email = $_POST['email'];
$phone = $_POST['phone'];
$message = $_POST['message'];
//adding to the body variable
$body = "Name: " + $name + "'r'n" + "E-mail: " + $email + "'r'n" + "Phone: " + $phone + "'r'n" + "Message: " + $message + "'r'n";
//email info
$to = 'thisisafake@gmail.com';
$subject = 'You have been contacted via the web form!';
$from = 'admin@vancouverbolt.com';

mail($to, $subject, $body);

<!-- Mailer -->
<form role="form" method="post" action="mail/contact_me.php">
  <div class="row">
    <div class="col-md-6">
      <div class="form-group">
        <input type="text" data-validation-required-message="Please enter your name." required="" id="name" name="name" placeholder="Your Name *" class="form-control" value="">
        <p class="help-block text-danger"></p>
      </div>
      <div class="form-group">
        <input type="email" data-validation-required-message="Please enter your email address." required="" id="email" name="email" placeholder="Your Email *" class="form-control" value="">
        <p class="help-block text-danger"></p>
      </div>
      <div class="form-group">
        <input type="tel" data-validation-required-message="Please enter your phone number." required="" id="phone" name="phone" placeholder="Your Phone *" class="form-control" value="">
        <p class="help-block text-danger"></p>
      </div>
    </div>
    <div class="col-md-6">
      <div class="form-group">
        <textarea data-validation-required-message="Please enter a message." required="" id="message" name="message" placeholder="Your Message *" class="form-control" style="height:132px;" value=""></textarea>
        <p class="help-block text-danger"></p>
      </div>
    </div>
    <div class="col-lg-12 text-center">
      <div id="success"></div>
      <input id="submit" name="submit" type="submit" value="Send" class="btn btn-primary" />
    </div>
    <div class="form-group">
      <!-- Will be used to display an alert to the user -->
    </div>
  </div>
</form>
<!-- End Mailer -->

这是一张图片的URL,显示了我在网络模式(Firebug)中填充的参数**堆栈溢出不会让我发布图片,因为我缺乏声誉。

http://tinypic.com/r/2znpdme/8

您连接错误,可能来自JS;)

$body = "Name: " + $name + "'r'n" + "E-mail: " + $email + "'r'n" + "Phone: " + $phone + "'r'n" + "Message: " + $message + "'r'n";

应该是

$body = "Name: " . $name . "'r'n" . "E-mail: " . $email . "'r'n" . "Phone: " . $phone . "'r'n" . "Message: " . $message . "'r'n";

您需要对字符串使用.串联运算符,而不是PHP中的+。事实上,您可以直接在双引号字符串中插入变量(在这种情况下,插值在PHP中更常见):

<?php
//building message body
$name = $_POST['name'];
$email = $_POST['email'];
$phone = $_POST['phone'];
$message = $_POST['message'];
//adding to the body variable
$body = "Name: $name'r'nE-mail: $email'r'nPhone: $phone'r'nMessage:$message'r'n";
//email info
$to = 'thisisafake@gmail.com';
$subject = 'You have been contacted via the web form!';
$from = 'admin@vancouverbolt.com';

mail($to, $subject, $body);
?>