2016-11-18 194 views
0

我有一個簡單的html表單,應該使用POST方法提交表單,它會發送mail.php上的表單內容發送電子郵件。我已經驗證了PHP的郵件功能使用下面的代碼在服務器上的工作:未提交表格

$headers = 'From: [email protected]'; mail('[email protected]', 'test email yo', 'This is a test email message', $headers, '[email protected]'); 

我使用發送郵件的PHP代碼如下:

mail('[email protected]', $_POST['name'], $_POST['email'], $_POST['phone'], $_POST['message']); 

HTML表單,應該是發送的信息是這樣的:

<form id="contact-form" class="contact-form" method="post" action="mail.php"> 
    <div class="success-message">Contact form submitted.</div> 
    <div class="coll-1"> 
     <p class="mbot3">Name*</p> 
     <label class="name"> 
      <input type="text" placeholder="" data-constraints="@Required @JustLetters" name="name"/> 
      <span class="empty-message">*This field is required.</span> 
      <span class="error-message">*This is not a valid name.</span> 
     </label> 
    </div> 
    <div class="coll-2"> 
     <p class="mbot3">E-mail*</p> 
     <label class="email"> 
      <input type="text" placeholder="" data-constraints="@Required @Email" name="email"/> 
      <span class="empty-message">*This field is required.</span> 
      <span class="error-message">*This is not a valid email.</span> 
     </label> 
    </div> 
    <div class="coll-3"> 
     <p class="mbot3">Phone</p> 
     <label class="phone"> 
      <input type="text" placeholder="" data-constraints="@JustNumbers" name="phone"/> 
      <span class="empty-message">*This field is required.</span> 
      <span class="error-message">*This is not a valid phone.</span> 
     </label> 
     </div> 
     <label class="message"> 
      <span class="mbot3">Message*</span> 
      <textarea placeholder="" data-constraints="@Required @Length(min=20,max=999999)" name="message"></textarea> 
      <span class="empty-message">*This field is required.</span> 
      <span class="error-message">*The message is too short.</span> 
     </label> 
    <div> 
     <a href="#" data-type="submit" class="btn-link btn-link1"><img src="img/arrow1.png" alt="">submit</a> 
     <p class="req">* Required fields</p> 
    </div> 
</form> 

我不能讓形式的內容的電子郵件來通過,我猜想可能是錯誤的,這個問題是的形式和它的開機自檢能力的次電子信息到PHP?

此代碼來自預製模板,我沒有自己寫。

編輯:建議我添加了名稱屬性,但尚未解決問題。更新了HTML以反映當前的代碼。

編輯2:已解決問題,我不得不刪除id =「contact-form」不確定與此相關的是阻止表單提交,但它做到了。從那裏我從原始形式採取了樣式,並將它們添加到我替換的新ID中。

+1

給name屬性來輸入類型這樣,然後嘗試獲得在該名稱$ _POST –

+0

嘗試在所有輸入類型中添加** name **,例如

+0

只有一個更改@NIMESHPATEL name =「name」not name = 「first_name」,因爲他收到$ _POST ['name'] – PassionInfinite

回答

3

你錯過了輸入和textarea的

<input type="text" placeholder="" data-constraints="@Required @JustLetters" name = "name"/> 

name屬性應該有相同的名字,你是從$ _ POST接收[ '名']

+0

我添加了名稱屬性,但電子郵件仍然沒有通過。 – benikens

+0

將輸入類型=文本更改爲電子郵件以發送電子郵件。 – PassionInfinite

+0

我已經添加了這個,但仍然沒有骰子。 – benikens

0

檢查這些字段在您的HTML代碼,

<input type="text" placeholder="" data-constraints="@Required @JustLetters" /> 
<input type="text" placeholder="" data-constraints="@Required @Email" /> 
<input type="text" placeholder="" data-constraints="@JustNumbers"/> 
<textarea placeholder="" data-constraints="@Required @Length(min=20,max=999999)"></textarea> 

並與下面的代碼替換它們,你錯過添加name屬性,name使用您提交表格後引用表單數據屬性。

<input type="text" name="name" placeholder="" data-constraints="@Required @JustLetters" /> 
<input type="text" name="email" placeholder="" data-constraints="@Required @Email" /> 
<input type="text" name="phone" placeholder="" data-constraints="@JustNumbers"/> 
<textarea name="message" placeholder="" data-constraints="@Required @Length(min=20,max=999999)"></textarea> 
+0

我加了這個,但它仍然不起作用 – benikens