2014-07-10 42 views
4

我与我的网站上的联系表格有问题! 我试过网上搜索的答案,但我是新来这个网站建设,并会欣赏一个简单的答案,如果可能的话。我猜编码是错的,但我真的不知道在哪里!网站联系表格提交空白电子邮件

问题 - 我收到的电子邮件按提交之后,但在我的收件箱它只显示主题行和不显示的消息,电子邮件或者从它的人的名字。

请帮忙!


下面是HTML代码:

<form action="result.php" method="post"> 

<input name="Name" class="" type="text" value="Name (Required)" onfocus="if(this.value == 'Name (Required)') { this.value = ''; }" onblur="if(this.value == '') { this.value = 'Name (Required)'; }" /> 

<input name="Email" class="" type="text" value="Email (Required)" onfocus="if(this.value == 'Email (Required)') { this.value = ''; }" onblur="if(this.value == '') { this.value = 'Email (Required)'; }" /> 

<input name="Subject" class="" type="text" value="Subject" onfocus="if(this.value == 'Subject') { this.value = ''; }" onblur="if(this.value == '') { this.value = 'Subject'; }" /> 

<textarea name="Detail" cols="" rows="" onfocus="if(this.value == 'Describe your project in detail...') { this.value = ''; }" onblur="if(this.value == '') { this.value = 'Describe your project in detail...'; }">Describe your project in detail...</textarea> 

<input type="submit" name="submit" action="submit" value="submit" class="submitbtn" /> 
<input type="reset" name="reset" action="reset" value="reset" class="resetbtn" /> 
</form> 

和PHP代码:

<?php 
$name = $_POST['Name']; 
$email = $_POST['Email']; 
$subject = $_POST['Subject']; 
$detail = $_POST['Detail']; 
$to = "[email protected]"; 
$subject = "Contact Form Submission"; 
mail ($to, $subject, $detail, "From" . $name); 
echo "Thank You. Your Message has been sent."; 

?> 
+2

'var_dump($ _ POST);' – user1947561

+0

我认为你的'From'标题格式不正确。改变'“来自”。 $ name'到'“From:”。 $电子邮件。 “\ r \ n”'... – War10ck

回答

3

似乎呦不被使用$email任何地方,而你的标题没有正确的格式。也许是这样的:

<?php 
$name = $_POST['Name']; 
$email = $_POST['Email']; 
$subject = $_POST['Subject']; 
$detail = $_POST['Detail']; 

$to = "[email protected]"; 
$subject = "Contact Form Submission"; 
$message = $detail . "\n\nFrom Name: {$name}"; 
$message .= "\nFrom Address: {$email}"; 

mail ($to, $subject, $message , "From: [email protected]"); 

echo "Thank You. Your Message has been sent."; 

请注意,我完全删除了您的From头,因为您不想从任意地址发送。最好使用来自您自己的域名的无回复地址或类似名称,并且只需将联系信息包含在电子邮件正文中。

+0

我不明白为什么这是downvoted。她问为什么她看不到邮件中的电子邮件值。我指出,这是因为您没有在发送电子邮件的信息中包含该值,并提出了解决方案。 – oliakaoil

+0

OP使用她的电子邮件代码识别出多个问题:_“显示主题行,并且不显示消息,电子邮件或其来自的人的姓名。”_本文仅针对其中一个问题找出可能的解决方案。此外,它更多地被视为一种建议,而不提供任何代码或参考文档,说明为什么应该这样做,或者如何正确使用'mail()'函数。 – War10ck

+0

@ War10ck我根据你的建议更新了我的答案 – oliakaoil

0

您的标题错误...使用此语法。

$to = "[email protected]"; 
$subject = "Contact Form Submission"; 
$message = $detail; 
$headers = "From: ".$name; 
$headers .= "\r\nMIME-Version: 1.0\r\n"; 
$headers .= "Content-Type: text/html;\r\n"; 
mail($to,$subject,$message,$headers); 

这应该起作用。

+1

谢谢,这也工作! – Philippa

1

检查从邮件功能:http://www.php.net/manual/en/function.mail.php

bool mail (string $to , string $subject , string $message [, string $additional_headers [, string $additional_parameters ]]) 

第四个参数是additional_headers,所以你的格式可能是错误的。尝试:

mail ($to, $subject, $detail, "From: " . $name);