提交此表格后,为什么电子邮件正文中没有任何内容?

时间:2014-08-12 02:53:39

标签: php html

我的PHP代码:

$myemail = myemail;
$subject = "success";
if(isset($_POST['firstname'])){ $name = $_POST['firstname']; } 
if(isset($_POST['lastname'])){ $price = $_POST['lastname']; } 

$message = "$firstname $lastname";
mail($myemail, $subject, $message);

我的html使用twitter bootstrap:

<form class="form-horizontal" name="application" method="POST" action="submission.php">
<legend></legend>
<div class="control-group">
<label class="control-label" for="firstname">First Name</label>
<div class="controls">
<input type="text" id="firstname" name="firstname" placeholder="First Name">
</div>
</div>
<div class="control-group">
<label class="control-label" for="lastname">Last Name</label>
<div class="controls">
<input type="text" id="lastname" name="lastname" placeholder="Last Name">
<button type="submit" class="btn btn-success" id="submit">Submit</button>
</div>
</div>
</form>

我收到了电子邮件,但身体里什么都没有。

2 个答案:

答案 0 :(得分:1)

您使用的是错误的变量。 $name$price位于:

$name  = $_POST['firstname']; // should be $firstname
$price = $_POST['lastname']; // should be $lastname

&安培;结合:

$message = "$firstname $lastname";

将其更改为:

$firstname = $_POST['firstname'];
$lastname  = $_POST['lastname'];

使用$message = "$name $price";,同时保留其余代码不变。无论哪种方式,变量都需要匹配并在整个代码执行过程中保持一致。

使用错误报告:

会发出未定义的索引错误信号。


附加说明:

您的代码不包含其他标头,尤其是From:,它会被许多服务器拒绝,或最终位于Spam

使用正确的邮件标题:

根据文件:

$to      = 'nobody@example.com';
$subject = 'the subject';
$message = 'hello';
$headers = 'From: webmaster@example.com' . "\r\n" .
    'Reply-To: webmaster@example.com' . "\r\n" .
    'X-Mailer: PHP/' . phpversion();

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

答案 1 :(得分:0)

  

if(isset($ _ POST ['firstname'])){$ name = $ _POST ['firstname']; }   if(isset($ _ POST ['lastname'])){$ price = $ _POST ['lastname']; }

     

$ message =“$ firstname $ lastname”;

你一定是在开玩笑。 $ name = ... $ price = ... ...“$ firstname $ lastname” 没有为$ firstname / $ lastname变量赋值,也许使用“$ name $ price”代替?