2014-03-06 209 views
0

我有一個網站表單,有人可以給我發送消息。他們必須輸入他們的姓名,電子郵件和信息。HTML表單不發送所有數據

表單工作到一個地步,我得到的電子郵件和他們輸入的發件人姓名和電子郵件顯示在電子郵件中,但不是他們輸入的消息。

任何人都可以看到問題出在哪裏嗎?

下面是HTML表單

<form method="post" action="php/mail.php" name="cform" id="cform"> 
    <input name="name" id="name" type="text" class="col-xs-12 col-sm-6 col-md-6 col-lg-6" placeholder="Your name..." > 
    <input name="email" id="email" type="email" class=" col-xs-12 col-sm-6 col-md-6 col-lg-6 noMarr" placeholder="Your email..." > 
    <textarea name="message" id="message" cols="" rows="" class="col-xs-12 col-sm-12 col-md-12 col-lg-12" placeholder="Your message..."></textarea> 
    <input type="submit" id="submit" name="send" class="submitBnt" value="Send message"> 
</form> 

這裏是PHP/mail.com即使用(連接詳細信息更改爲匿名細節)

<? 
    require("class.phpmailer.php"); 

//form validation vars 
$formok = true; 
$errors = array(); 

//sumbission data 
$ipaddress = $_SERVER['REMOTE_ADDR']; 
$date = date('d/m/Y'); 
$time = date('H:i:s'); 

//form data 
$name = $_POST['name']; 
$email = $_POST['email']; 
$subject = $_POST['subject']; 
$message = $_POST['message']; 

    $mail = new PHPMailer(); 

    $mail->IsSMTP();        // send via SMTP - mail or smtp.domain.com 
    $mail->Host  = "myhost.myprovider.com"; // SMTP servers 
    $mail->SMTPAuth = true;    // turn on SMTP authentication 
    $mail->Username = "[email protected]";  // SMTP username 
    $mail->Password = "mypassword";   // SMTP password 

    $mail->From  = "[email protected]";  // SMTP username 
    $mail->AddAddress("[email protected]"); // Your Adress 
    $mail->Subject = "New contact request from ME !"; 
    $mail->IsHTML(true); 
    $mail->CharSet = 'UTF-8'; 
    $mail->Body  = "<p>You have recieved a new message from the enquiries form on your website.</p> 

    <p><strong>Name: </strong> {$name} </p> 
<p><strong>Email Address: </strong> {$email} </p> 
<p><strong>Subject: </strong> {$subject} </p> 
<p><strong>Message: </strong> {$message} </p> 
<p>This message was sent from the IP Address: {$ipaddress} on {$date} at {$time}</p>"; 

    if(!$mail->Send()) 
    { 
     echo "Mail Not Sent <p>"; 
     echo "Mailer Error: " . $mail->ErrorInfo; 
     exit; 
    } 

回答

0

我認爲你需要的MIME類型文本域...但我不完全確定。試試吧,它不會傷害你:

<form enctype="multipart/form-data" method="post" action="php/mail.php" name="cform" id="cform"> 
+0

值只是去嘗試,但仍然沒有運氣。電子郵件中仍然沒有顯示任何消息。如果它可能有幫助,「主題」也不會顯示。主題在php/mail.com中設置,但它在測試時得到的電子郵件中沒有顯示 – heyred

1

沒有任何理由,就像你說的,nameemail顯示,以及message是不是。

0

可能要看看這個類似的問題

有人有同樣的問題,所有的要做的就是id和名稱更改爲不同的東西

Issue using $_POST with a textarea

至於問題與顯示的主題我看到你評論,你從來沒有通過一個主題到$_POST,除非你在其他代碼沒有張貼

編輯1:

如果手動設定的主題,那麼爲什麼嘗試從$_POST得到它,以及試圖做<p><strong>Subject: </strong> {$subject} </p>不會起作用,因爲$subject沒有從$_POST

+0

確定嘗試了這個 - 在textarea中更改了消息ID,但它仍然不起作用。至於主題,我在php/mail.php中手動設置主題,如下所示:$ mail-> Subject =「來自ME的新聯繫人請求」; \t

標題: {$ subject}

heyred

+0

只要您從$ _POST中獲得值,它們的值是否正確? –

+0

我將如何測試?我只使用記事本來編輯這些文件,並且我無法逐句通過代碼或設置斷點。請問有另一種方法可以測試嗎? – heyred