2014-07-10 68 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);