2017-02-14 25 views
0

我使用Swiftmailer創建表單。問題是,表單內部沒有任何內容,但PHP正文出現在電子郵件中。我也觀看了Youtube和Google的一些教程,嘗試過但失敗了,沒有任何工作。表單中的內容未發送至網絡郵箱

HTML

<form id="contactForm" method="POST" action="form-process.php"> 
      <div class="row"> 
       <div class="form-group col-md-6"> 
        <label class="h4">Your Name</label> 
        <input type="text" class="form-control" id="name" placeholder="Enter name" required data-error="NEW ERROR MESSAGE"> 
        <div class="help-block"></div> 
       </div> 
       <div class="form-group col-md-6"> 
        <label class="h4">Your Email</label> 
        <input type="text" class="form-control" id="email" placeholder="Enter name" required> 
        <div class="help-block"></div> 
       </div> 
      </div> 
      <div class="form-group"> 
        <label class="h4">Your Message</label> 
        <textarea id="message" class="form-control" rows="5" placeholder="Enter your message" required></textarea> 
        <div class="help-block"></div> 
       </div> 
       <button type="submit" id="form-submit" class="btn btn-success btn-lg pull-right ">Submit</button> 
     <div id="msgSubmit" class="h3 text-center hidden"></div> 
     <div class="clearfix"></div> 
     </form> 

PHP

<?php 

require_once 'swiftmailer-5.x/lib/swift_required.php'; 

// Create the Transport 
$transport = Swift_SmtpTransport::newInstance('mail.mysite.com', 465, 'ssl') 
    ->setUsername('[email protected]') 
    ->setPassword('password') 
    ; 

// Get data 

$name=filter_var($_POST['name'], FILTER_SANITIZE_STRING); 
$email=filter_var($_POST['email'], FILTER_SANITIZE_EMAIL); 
$message=filter_var($_POST['message'], FILTER_SANITIZE_STRING); 

$data = "Name: " . $name . "<br />" . 
     "Email: " . $email . "<br />" . 
     "Message: " . $message . "<br />"; 

// Create the Mailer using your created Transport 
$mailer = Swift_Mailer::newInstance($transport); 

// Create a message 
$message = Swift_Message::newInstance('Feedback Form') 
    ->setFrom(array('[email protected]' => 'Feedback Form')) 
    ->setTo(array('[email protected]' => 'Feedback Form')) 
    ->setBody($data, 'text/html') 
    ; 

// Send the message 
$result = $mailer->send($message); 

?> 
<p>Thank you for give us your feedback. We will respond to your feedback as soon as possible.</p> 
<p>Please click <button type="btn btn-success"><a href="contact.html">Here</a></button> to return to the site.</p> 

這裏的屏幕捕獲

enter image description here

我做了什麼錯?幫我。 (使用Bootstrap作爲表單)

+0

發佈您的所有代碼,包括HTML表單。 – JustBaron

+0

發佈html以及 –

+0

對不起,不能提前發佈 – ShafiqqAziz

回答

3

好吧,它看起來像缺少表單輸入的名稱屬性。

添加的屬性,然後你的形式應該工作,例如:

<input type="text" class="form-control" id="name" name="name" placeholder="Enter name" required data-error="NEW ERROR MESSAGE"> 
<input type="text" class="form-control" id="email" name="email" placeholder="Enter name" required> 
<textarea id="message" class="form-control" name="message" rows="5" placeholder="Enter your message" required></textarea> 
1

問題是你一定要命名屬性添加到輸入。
因此改爲<input type="text" class="form-control" id="name" placeholder="Enter name" required data-error="NEW ERROR MESSAGE">
您應該使用<input type="text" class="form-control" id="name" name="name" placeholder="Enter name" required data-error="NEW ERROR MESSAGE">,以便您的PHP腳本可以從POST請求附帶的數組中獲取此值。
爲每個輸入添加名稱屬性,並且您的腳本將在表單提交後得到它。