@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, там где его нет
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽