2016-11-18 3 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]'); 

РНР код, я использую для отправки почты выглядит следующим образом:

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> 

Я не могу получить содержимое формы, чтобы проявиться в электронной почте, я предполагаю, что, возможно, ошибочно, что вопрос с формой и его способность к POST-я e info to php?

Этот код из шаблона предварительной печати я сам не писал.

Редактировать: Как было предложено, я добавил атрибуты имени, однако это не устранило проблему. Обновлен HTML, чтобы отразить текущий код.

Редактировать2: Решили проблему, мне пришлось удалить id = "contact-form", не уверен, что было связано с этим, что препятствовало отправке формы, но это и делало это. Оттуда я взял стили из оригинальной формы и добавил их к новому идентификатору, который я заменил.

+1

дать имя атрибута типа ввода, как этот <входной тип = «текст» заполнитель = «» данные-ограничения = «@ Необходимые @JustLetters» имя = «first_name» />, а затем попытаться получить это имя в $ _POST –

+0

попробуйте добавить ** имя ** во все типы ввода, например

+0

Только одно изменение @NIMESHPATEL name = "name" not name = «first_name», поскольку он получает в качестве $ _POST ['name'] – PassionInfinite

ответ

3

Вы пропустили имени к вводу и текстового полю поля

<input type="text" placeholder="" data-constraints="@Required @JustLetters" 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

Смежные вопросы