@ligisayan

Почему передаются только избранные параметры через форму?

Всем привет! Есть у меня стандартная форма заказать звонок с параметрами name, phone, email, message. Вся загвоздка в том, что данные полей name и phone доходят, а email и message нет.. В чем может быть причина? Сама форма:
<form name="sentMessage" class="form form-register1" id="contactForm" >

			<div class="control-group">
			<div class="controls">
			<input type="text" class="form-control" onblur='if(this.value=="") this.placeholder="Ваше имя"' onfocus='if(this.value=="Ваше имя") this.value=""' placeholder="Ваше имя" id="name" required data-validation-required-message="Пожалуйста укажите ваше имя" />
			  <p class="help-block"></p>
			</div>
			</div>  
			<div class="control-group">
			<div class="controls">
			<input type="tel" class="form-control" onblur='if(this.value=="") this.placeholder="Телефон"' onfocus='if(this.value=="Телефон") this.value=""' placeholder="Телефон" id="phone" required data-validation-required-message="Пожалуйста, укажите номер телефона" />
			</div>
			</div>
			<div class="control-group">
			<div class="controls">
			<input type="email" class="form-control" onblur='if(this.value=="") this.placeholder="Email"' onfocus='if(this.value=="Email") this.value=""' placeholder="example@mail.ru" required name="email" id="email" required data-validation-required-message="Пожалуйста, укажите ваш e-mail">
			</div>
			</div>
			<div class="control-group">
			<div class="controls">
			<textarea class="form-control" onblur='if(this.value=="") this.placeholder="Ваше сообщение"' onfocus='if(this.value=="Ваше сообщение") this.value=""' placeholder="Введите сообщение..." id="message" name="message" required data-validation-required-message="Пожалуйста, введите ваш вопрос" /></textarea>
			</div>
			</div>

			<div id="success"> </div> <!-- For success/fail messages -->
			   <button type="submit" class="ring-btn-yellow">Отправить</button>
		</form>

И обработчик формы:
if(empty($_POST['name'])   ||  empty($_POST['phone']))
   {
echo "Не переданы данные!";
return false;
   }

$name = $_POST['name'];
$phone = $_POST['phone'];
$message = $_POST['message'];
$email = $_POST['email'];

$to = 'johidodo@leeching.net'; // put your email
$email_subject = "Вам отправлена форма - Перезвоните мне: $name";
$email_body = "Заполнена форма \"Перезвоните мне\". \n\n".
 "Данные отправителя:\n\nИмя: $name ".
 "Телефон: $phone \n".
 "Email: $email \n".
 "Сообщение: $message";
$headers = "From: contact@mail.com\n";
$headers .= "Reply-To:"; 
mail($to,$email_subject,$email_body,$headers);
return true;

причем, если добавлю проверку данных empty($_POST['email']) и empty($_POST['message']) то форма вообще не обрабатывается и данные не отсылается. Почему?
  • Вопрос задан
  • 239 просмотров
Решения вопроса 1
Henryh
@Henryh
Веб-программист
Судя по форме, у вас наоборот не должны приходить поле "phone", так как в input id="phone" не заполнено name="phone". Но это если вы отправляете через post. Что вряд ли, по тому что для отправки нужно не < button type="submit" > а < input type="submit" >
Если же вы отправляете через AJAX (без перехода страницы) надо смотреть также в JS скрипт, какие именно он поля передаёт.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Добавьте атрибут name, там где его нет
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы