2014-09-25 80 views
2

我從一個模板發送郵件給我的PHP郵件表單,但它顯示所有變量都是空白的。 PHP郵件表單顯示空白回覆

<?php 
 
\t header('Content-type: application/json'); 
 
\t $status = array(
 
\t \t 'type'=>'success', 
 
\t \t 'message'=>'Email sent!' 
 
\t); 
 

 
    $name = @trim(stripslashes($_POST['yourname'])); 
 
    $email = @trim(stripslashes($_POST['youremail'])); 
 
    $subject = @trim(stripslashes($_POST['yoursubject'])); 
 
    $message = @trim(stripslashes($_POST['yourmessage'])); 
 

 
    $email_from = $email; 
 
    $email_to = '[email protected]'; 
 

 
    $body = 'Name: ' . $name . "\n\n" . 'Email: ' . $email . "\n\n" . 'Subject: ' . $subject . "\n\n" . 'Message: ' . $message; 
 

 
    $success = @mail($email_to, $subject, $body, 'From: <'.$email_from.'>'); 
 

 
    echo json_encode($status); 
 
    die; 
 
?>
這裏的HTML:

<div class="col-sm-6"> 
    <h1> 
     Contact Form 
    </h1> 
    <p> 
     Fill out the form to enquire directly and we will get back to you as soon as possible. 
    </p> 
    <div class="status alert alert-success" style="display: none"> 
    </div> 
    <form id="main-contact-form" class="contact-form" name="contact-form" method="post" action="sendemail.php" role="form"> 
     <div class="row"> 
      <div class="col-sm-6"> 
       <div class="form-group"> 
        <input name="yourname" type="text" class="form-control" required="required" placeholder="Name"> 
       </div> 
      </div> 
      <div class="col-sm-6"> 
       <div class="form-group"> 
        <input name="youremail" type="text" class="form-control" required="required" placeholder="Email address"> 
       </div> 
      </div> 
     </div> 
     <div class="row"> 
      <div class="col-sm-12"> 
       <div class="form-group"> 
        <textarea name="yourmessage" id="message" required class="form-control" rows="8" placeholder="Message"></textarea> 
       </div> 
       <div class="form-group"> 
        <button type="submit" class="btn btn-danger btn-lg">Send Message</button> 
        <input type="hidden" name="yoursubject" value="Enquiry"> 
       </div> 
      </div> 
     </div> 
    </form> 
</div> 

但所得的電子郵件爲:

名稱:

電子郵件:

主題:

消息:

沒有任何答覆。我哪裏錯了?

編輯:

如果我在php文件中的信息來通過精細手動設置變量:

$name = 'John'; 
 
    $email = '[email protected]; 
 
    $subject = 'Enquiry Form'; 
 
    $message = 'Message here.';
我認爲PHP文件不是從形式正確地獲取變量。我該如何解決?

+1

回聲'$ body'並檢查您是否正確獲取值。 – Jenz 2014-09-25 11:28:38

+0

你爲什麼使用'@ trim'和'@ mail'?您不應該需要在這種腳本中排除錯誤,並且會失去重要的故障排除信息。 – 2014-09-26 10:41:25

+0

您是否嘗試更改''到''? – tftd 2014-09-26 10:42:32

回答

0

我沒有看到電子郵件的標題。嘗試添加此:

$headers = "MIME-Version: 1.0\r\nFrom: $noReplay\r\nReply-To: $noReplay\r\nContent-Type: text/html; charset=utf-8"; 

其中$noReplay是電子郵件地址展現給接收器和頭部是被作爲mail()功能的最後一個參數。

希望這會有所幫助!
繼續編碼,
阿瑞斯。

+0

感謝您的幫助,但它沒有幫助。我仍然得到空白的迴應。 – 2014-09-26 09:48:42

0

嘗試通過使用簡單的代碼,並設置內容類型:它可能有用頭的text/html:

$name = $_POST['yourname']; 
$email = $_POST['youremail']; 
$subject = $_POST['yoursubject']; 
$message = $_POST['yourmessage']; 

$email_from = $email; 
$email_to = '[email protected]'; 

$body = 'Name: ' . $name . "\n\n" . 'Email: ' . $email . "\n\n" . 'Subject: ' . $subject . "\n\n" . 'Message: ' . $message; 

//set the headers 

$headers = 'MIME-Version: 1.0' . "\r\n"; 
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; 

// Additional headers 
$headers .= 'From: <'.$email_from.'>' . "\r\n"; 

// Mail it 
mail($email_to, $subject, $body, $headers); 
+0

仍然給我一個空白的電子郵件。我無法弄清楚。這可能是我的服務器上的PHP問題? – 2014-09-27 20:53:27