2014-06-12 40 views
-1

希望你能幫助,因爲我目前難住。沒有語法錯誤,但PHP電子郵件形式仍然失敗

我在我的網站上有2個地方實施了一些代碼。

由於某種原因,表單無法每次發送。下面是代碼,我已經通過一個語法檢查器來運行它,就這一點而言它沒有問題。

<?php 
    $name = $_POST['name']; 
    $email = $_POST['email']; 
    $number = $_POST['number']; 
    $message = $_POST['message']; 
    $from = 'From: Roofing Solutions Contact Form'; 
    $to = '[email protected]'; 
    $subject = 'Question Sent From Website Form'; 
    $human = $_POST['human']; 

    $body = "From: $name\n E-Mail: $email\n Number: $number\n Message:\n $message"; 

    if ($_POST['submit'] && $human == '4') {     
     if (mail ($to, $subject, $body, $from)) { 
      echo '<p>Your message has been sent!</p>'; 
     } else { 
      echo '<p>Something went wrong, go back and try again!</p>'; 
     } 
    } else if ($_POST['submit'] && $human != '4') { 
     echo '<p>You answered the anti-spam question incorrectly!</p>'; 
    } 
?> 

所以我對此感到莫名其妙。只是爲了safetys的緣故,這裏是html格式:

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

    <label>Name</label> 
    <input name="name" placeholder="Type Here"> 

    <label>Email</label> 
    <input name="email" type="email" placeholder="Type Here"> 

    <label>Contact Number</label> 
    <input name="number" placeholder="Type Here"> 

    <label>Message</label> 
    <textarea name="message" placeholder="Type Here"></textarea> 

    <label>*What is 2+2? (Anti-spam)</label> 
    <input name="human" placeholder="Type Here"> 

    <input id="submit" name="submit" type="submit" value="Submit"> 

</form> 

謝謝你的幫助。

+1

你'$ from'看上去很恐怖。 – urzeit

+0

-1複製http://stackoverflow.com/questions/23828423/php-form-doesnt-work?rq=1 –

+0

你的來自應該在你的頭。請參閱此頁上的示例2:http://php.net/manual/en/function.mail.php –

回答

0
add header part.. 
/To send HTML mail, the Content-type header must be set 
$headers = 'MIME-Version: 1.0' . "\r\n"; 
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; 
0

我不知道你在做什麼與身體和信息,這對我來說看起來很奇怪。形式應該是頭, 一個最常規的解決方案: 你的PHP部分:

$to = '[email protected]'; 
$subject = 'Question Sent From Website Form'; 
$message = "E-Mail: ".$_POST['email']."\n<br />Number: ".$_POST['number']."\n<hr />Message:\n ".$_POST['message']; 
$headers = "From: Roofing Solutions Contact Form <".$to.">\r\n" ; 
$headers .= 'MIME-Version: 1.0' . "\r\n"; 
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n" ; 

if ($_POST['submit'] && _POST['human'] == '4') { 
    if (mail ($to, $subject, $message, $headers)) { 
     echo '<p>Your message has been sent!</p>'; 
    } else { 
     echo '<p>Something went wrong, go back and try again!</p>'; 
    } 
} else if ($_POST['submit'] && _POST['human'] != '4') { 
    echo '<p>You answered the anti-spam question incorrectly!</p>'; 
}