При создании лендинг-страницы постает вопрос по обработке данных формы и их отправка на почту. Где прописывается файл обработки и какая у него структура? Вот основной вопрос на который постараемся найти ответ

Прежде чем перейти к поиску ответа на поставленный вопрос оговорим, что файл для обработки данных формы будет размещаться отдельно от самой формы.
И так, приступим.
HTML-код нашей формы, которая может находится в отдельном файле или в теле страницы имеет такой вид















<





form





 





action





=





"order.php"





 





method





=





"POST"





 





name





=





"form"





>












<





input





 





name





=





"form_name"





 





type





=





"hidden"





 





value





=





"Открытая"





>












<





input





 





name





=





"came_from"





 





type





=





"hidden"





 





value





=





""





  />












<





input





 





type





=





"text"





 





required





 





name





=





"user_name"





 





value





=





""





 





class





=





"input_name "





 






placeholder





=





"ваше имя"





 >












<





input





 





type





=





"text"





 





required





 





name





=





"user_email"





 





value





=





""





 





class





=





"input_email "





 






placeholder





=





"ваш e-mail"





>












<





input





 





type





=





"text"





  





required





 





name





=





"user_phone"





 





value





=





""





 





class





=





"input_phone "





 






placeholder





=





"ваш телефон"





>












<





input





 





class





=





"bttn"





 





name





=





"submit"





 





type





=





"submit"





 





value





=





"оставить заявку"





>












</





form





>














В представленном коде нам понадобиться следующие данные и переменные:
<form action=»order.php» method=»POST» … — название и размещение файла ( order.php ) обработки введенных данных;
<input type=»text» required name=»user_name» … — переменная ( user_name ), которая будет отвечать и передавать Имя пользователя;
<input … name=»user_email» … — переменная ( user_ email ), которая будет отвечать и передавать электронную почту пользователя;
<input … name=» user_phone» … — переменная ( user_phone ), которая будет отвечать и передавать номер телефона пользователя.
Таким образом, наша форма содержит поля – Имя, электронную почту и номер телефона пользователя.

Обработка данных формы PHP

Файл обработки данных формы, в нашем случаи, называется order.php. Для того, чтобы упростить задачу, отдельно выпишем переменные, поскольку неоднократно придется к ним обращаться.
Наши переменные
name=»user_name»  —— Имя
name=»user_email» —- почта
name=»user_phone» —— телефон

Условно разделим файл обработки данных на три части – это проверка заполнения полей, формирование сообщения и его отправка.
Первая часть имеет следующий вид:















<?php












/* Осуществляем проверку вводимых данных и их защиту от враждебных скриптов */












$user_name





 = htmlspecialchars(





$_POST





[





"user_name"





]);






$user_email





 = htmlspecialchars(





$_POST





[





"user_emaill"





]);






$user_phone





 = htmlspecialchars(





$_POST





[





"user_phone"





]);







/* Устанавливаем e-mail адресата куда отправлять*/












$myemail





 = 





"my_email@mail.ru"





;  







/* Проверяем заполнены ли обязательные поля ввода, используя check_input 
функцию */












$user_name





 = check_input(





$_POST





[





"user_name"





], 





"Введите ваше имя!"





);






$user_phone





 = check_input(





$_POST





[





"user_phone"





], 





"Укажите телефон!"





);






$user_email





 = check_input(





$_POST





[





"user_email"





], 





"Введите ваш e-mail!"





);







/* Проверяем правильно ли записан e-mail */












if





 (!preg_match(





"/([\w\-]+\@[\w\-]+\.[\w\-]+)/"





, 





$user_email





))
{
show_error(





"<br /> Е-mail адрес не существует"





);
}








Здесь проверили заполнение полей формы, а также, был ли корректно введен электронный адрес и с помощью переменной $myemail указали, на какой адрес следует отправить эти данные.
Но что же отправлять? Вот самое время формировать сообщение для отправки















/* Создаем новую переменную, присвоив ей значение */












$message_to_myemail





 = 





"Здравствуйте! 
Вашей контактной формой было отправлено сообщение! 
Имя отправителя: 





$user_name





 
E-mail: 





$user_email





 
Телефон: 





$user_phone





 
Конец"





;








Сообщение сформировали, теперь осталось его только отправить адресату. За эту функцию отвечает третья часть файла, которая состоит с таких строк















/* Отправляем сообщение, используя mail() функцию */












$from





  = 





"From: $user_name <$user_email> \r\n Reply-To: $user_email \r\n"





; 
mail(





$myemail





, 





$user_phone





, 





$message_to_myemail





, 





$from





);






?>






<p>Ваше сообщение было успешно отправлено!</p>
<p>На <a href=





"index.php"





>Главную >>></a></p>






<?php














И результатом работы файла обработчика данных должно быть сообщение, которое сообщит пользователю о том, что его данные отправлены или же при заполнении полей формы допущена ошибка. Начнем с ошибок















/* Если при заполнении формы были допущены ошибки сработает 
следующий код: */












function





 check_input(





$data





, 





$problem





 = 





""





)
{






$data





 = trim(





$data





);






$data





 = stripslashes(





$data





);






$data





 = htmlspecialchars(





$data





);






if





 (





$problem





 && strlen(





$data





) == 





0





)
{
show_error(





$problem





);
}






return





 





$data





;
}






function





 show_error(





$myError





)
{






?>







<html>
<body>
<p>Пожалуйста исправьте следующую ошибку:</p>






<?php





 





echo





 





$myError





; 





?>






</body>
</html>






<?php












exit





();
}






?>





 








Проверяем работу тандема – формы обратной связи и файла обработчика. Если у Вас на странице выводятся крякозяблики вместо текста – исправьте кодировку файлов. Если же в ящик не приходит письмо, а сообщение об удачной отправке выводится – проверьте работу функции mail Хостинга .