Настраиваемая форма обратной связи: как создать онлайн? Как сделать красивую всплывающая форму обратной связи HTML и PHP с телефоном и отправкой заказа на электронную почту? Создание формы обратной связи


Добрый день, форма обратной связи должна присутствовать на каждом сайте. Сегодня я покажу пример готовой формы для вставки на любой сайт, в том числе и на движок wordpress. Готовый пример html и php кода можно будет скопировать на свой сайт. Кроме готового примера, существует много плагинов, которые так же пользуются большой популярностью. На многих сайта такая форма уже встроена в тему, но иногда бывает необходимость добавить еще одну на другую страницу или заменить старую.

Перед тем, как начинать писать эту статью, я прошелся по интернету в поисках ответа на этот вопрос. Пересмотрев больше количество сайтов и блогов, я нашел очень мало качественных ответов по вставке формы обратной связи на сайт. Большинство материалов написано по работе с плагинами. В некоторых статьях не совсем понятно, что и как нужно делать, код не работает, письма не приходят...и так далее.

Есть конечно и достойные ответы, но их очень мало. Я приведу простой пример, для которого много ума не нужно. Особых знаний в php не требуется, точнее они вообще не нужны. Что и где нужно изменить, я напишу подробно, когда это будет нужно. Форма работает нормально, без сбоев. Пример формы находится у меня на . В готовый пример я добавил немного стилей для красоты, чтоб форма совсем уже не смотрелась «убого». При желании можно все изменить на ваше усмотрение.

Готовая форма обратной связи для сайта на html

В данном примере, форма обратной связи для сайта состоит из html кода. Такой пример html кода вставляете абсолютно на любую страницу сайта, не важно, где и что вы используете. Этот же код можно вставить на страницу движка wordpress, все будет работать правильно и без сбоев.

Имя E-mail: Тема сообщения Ваш текст:

< form action = "/wp-content/themes/xmarkup/form.php" method = "post" name = "form" > Имя< input class = "inp" style = "width: 30%;" name = "name" type = "text" / >

E - mail : < input class = "inp" style = "width: 30%;" name = "email" type = "text" / >

Темасообщения< input class = "inp" style = "width: 30%;" name = "temma" type = "text" / >

Ваштекст:

< textarea class = "inp" style = "width: 80%;" cols = "1" name = "massage" rows = "5" > < / textarea >

< input class = "inp" type = "submit" value = "Отправить" / >

< / form >

В самом начале кода, в первом строчке, вы должны указать свой путь к php файлу form.php (про него немного попозже). Больше ничего менять не нужно. Если вас не устраивает название формы и ее поля, вы всегда можете добавить новые или изменить старые. Так же можно добавить свои стили прямо суда в таблицу. Если такой вариант вам неудобный, задавайте новые классы и уже потом добавляйте стили через ваш файл style.css

Кто не знает, как это можно сделать, заходим в админку сайта, переходим в редактор и открываем файл style.css. В самый конец таблицы стилей добавляем вот этот код. В итоге должен быть вставлен код формы на страницу и ваши css стили в таблицу style.css

Inp{ padding: 10px; border: 1px solid #E5E5E5; width: 200px; color: #999999; box-shadow: rgba(0, 0, 0, 0.1) 0px 0px 8px; -moz-box-shadow: rgba(0, 0, 0, 0.1) 0px 0px 8px; -webkit-box-shadow: rgba(0, 0, 0, 0.1) 0px 0px 8px; }

Inp {

padding : 10px ;

border : 1px solid #E5E5E5;

width : 200px ;

color : #999999;

box - shadow : rgba (0 , 0 , 0 , 0.1 ) 0px 0px 8px ;

Moz - box - shadow : rgba (0 , 0 , 0 , 0.1 ) 0px 0px 8px ;

Webkit - box - shadow : rgba (0 , 0 , 0 , 0.1 ) 0px 0px 8px ;

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

Php код формы

С разметкой формы определились, красоту навели, теперь необходимо создать файл с расширением php и добавить в него вот такой код. Файл добавляйте через FTP клиент на ваш сайт. Большинство пользователей используют CMS, скидывайте данный файл в папке с вашей темой. Адрес и название этого файла, вы должны изначально прописать в разметке вашей формы, которую я показывал выше. Я прописал полный путь для примера, чтоб было понятно, что и куда необходимо вставить.

(

Сам код файла form.php содержит в себе:

< meta http - equiv = "refresh" content = "1; url=http://сайт" >

< meta charset = "UTF-8" / >

if (isset ($_POST [ "name" ] ) ) { $name = $_POST [ "name" ] ; if ($name == "" ) { unset ($name ) ; } }

if (isset ($_POST [ "email" ] ) ) { $email = $_POST [ "email" ] ; if ($email == "" ) { unset ($email ) ; } }

if (isset ($_POST [ "temma" ] ) ) { $temma = $_POST [ "temma" ] ; if ($temma == "" ) { unset ($temma ) ; } }

if (isset ($_POST [ "massage" ] ) ) { $massage = $_POST [ "massage" ] ; if ($massage == "" ) { unset ($massage ) ; } }

if (isset ($name ) && isset ($email ) && isset ($temma ) && isset ($massage ) ) {

$address = "[email protected]" ;

$mes = "Имя: $name \nE-mail: $email \nТема: $temma \nТекст: $massage" ;

$send = mail ($address , $temma , $mes , "Content-type:text/plain; charset = UTF-8\r\nFrom:$email" ) ;

if ($send == "true" )

{ echo "Сообщение отправлено" ; }

else { echo "Ой, что-то пошло не так" ; }

else

echo "Заполните все поля" ;

Вместо url=http://сайт пишем свой адрес сайта. $address = «[email protected]» — в данной строчке указываем свой адрес электронной почты, на которую будут приходить письма. Больше ничего менять не нужно, все настроено и работает. Если у вас возникли трудности в процессе установки, пишите в комментариях, я обязательно отвечу.

Вставка обратной связи в wordpress

Процесс установки формы в wordpress ничем не отличается, все действия делаются аналогично. Файл form.php желательно закачать в папку с вашей темой. Не забываем в html разметки указать полный и точный адрес к файлу обработчику. Кроме этого, нужно изменить адрес сайта на свой сайт и правильно написать адрес электронной почты. Код готовой формы можно вставить на любую страницу вашего блога. В качестве примера я добавил к себе на блог на страницу с конкурсами.

В качестве примера, можно создать страницу «Связаться с автором» или «Автор» и закинуть туда вашу форму. На некоторых блогах я замечал снизу каждой формы ряд из кнопок социальных сетей или дополнительные варианты связи с автором. Если есть желание, можно так же повторить. У меня на блоге форма связи работает, я проверял лично на своем примере. Если к вам письма не доходят, значит проблема с вашей стороны.

Плагины для wordpress

Если у вас возникли трудности с вставкой такой рода обратной связи на свой сайт, вы можете сказать один из плагинов и установить его на свой сайт. На сегодня существует большое количество плагинов, с помощью которых можно сделать такие формы для сайта. Заходим в панель администратора, нажимаем на Плагины — добавить новый. Выбираем любой, который вам понравится и пользуемся на здоровье. Больше популярностью пользуется плагин Contact Form 7.

  1. Fast Secure Contact Form.
  2. Contact Form by Contact ME.
  3. FormCraft.
  4. Visual Form Builder.
  5. nForms – WordPress Form Builder.
  6. Gravity Forms.

Устанавливаем каждый по очереди и смотрим на каждый из них отдельно. Обратите внимание сразу на работоспособность плагина, на удаление посторонней ссылки на сайт автора (если она имеется). Все такие формы изначально смотрятся очень не красиво, сможете ли вы настроить ее под свой вкус и цвет.

Возьмем для примера первый из них. Добавляем новый плагин Contact Form 7. Данный плагин очень простой, при работа с ним проблем возникнуть не должно. Многие блогера пользуются этим плагином для дополнительных мелких форм на своих сайтах. Переходи в консоли слева в пункт Contact Form 7 и нажимаем «добавить новую форму». Язык по умолчанию уже стоит русский.

В первой вкладке выбираем и называем поля, которые будут присутствовать. Не нужно делать очень большую форму, добавляем имя, почту, тему, сообщение и кнопку «отправить». В вкладке «Письмо» указываем ваш электронный ящик, на который будут приходить сообщения". Особых трудностей у вас возникнуть не должно, все интуитивно понятно.

После создания, плагин предложит вам короткий шорткод, который нужно будет вставить в нужное место на сайте, например . После вставки шорткода, вы увидите свою новенькую форму. При создании любой страницы, переходим на вкладку редактирования «Текст» и вставляем ваш код.

Небольшой минус заключается в том, что дизайн вашей обратной связи будет в очень ужасном виде. Не стоит сильно расстраиваться. Заходим через ftp по данному адресу wp-content/plugins/contact-form-7/modules. В этой папке находятся все css стили плагина. Можно смело добавлять свои новые свойства, чтоб ваша форма была красивая и заметная.

Генератор формы обратной связи

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

  • formdesigner;
  • livetools.uiparade;
  • Google Forms;
  • iFormbuilder;
  • faary.

В таких онлайн генераторах нет необходимости прописывать код с нуля, думать про ошибки и так далее. Все уже сделано ранее. От вас необходимо выбрать только поля для формы, добавить кнопку «отправить» и прописать все необходимые записи. После всех этих действий, сервис предложит вам код для вставки на страницу сайта. Копируете полученный код на свою страницу и проверяете связь на работоспособность.

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

На сегодня подобных вида услуг существует большое количество и все они не стоят на месте. С каждый обновлением добавляются новые фишки. Онлайн консультанты добавляют много возможностей вашему интернет магазину для удобства связи с клиентом. Возьмем для примера сервис livetex, единственный его минус наверное цена. Период пользования три месяца стоит 4200 рублей для одного магазина. Всегда есть возможность испытать пробный период.

  1. Живое общение с клиентом.
  2. Генераторы лидов.
  3. Различные виджеты для обратного звонка.
  4. Онлайн статистика.
  5. Онлайн мониторинг.

Если у вас остались вопросы как устанавливать обратную связь на сайт, задавайте их в комментариях. Не стесняйтесь, поделитесь статьей в социальных сетях.

Управление сайтом во многих случаях включает в себя взаимодействие с его посетителями в рамках механизмов обратной связи. Представлены они могут быть в разных вариантах. Например, в виде формы обратной связи. В каких разновидностях она может быть представлена? Каковы особенности внедрения соответствующей формы в структуру сайта?

Что представляет собой форма обратной связи на сайте?

Форма, о которой идет речь, представляет собой интерфейс, который предназначен для передачи администраторам сайта различных сообщений от посетителей. Данная форма может быть удобной альтернативой использованию электронного адреса, а в некоторых случаях — диалоговым интерфейсам в формате чата. Задействовав ее, пользователь может быть уверен, что его сообщение дойдет до адресата и не попадет, таким образом, в спам, и при этом у него нет необходимости использовать сторонние программы для работы с почтовым ящиком.

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

Способы организации обратной связи на сайте

Запустить сервис обратной связи для сайта можно разными способами. В числе самых распространенных:

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

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

Использование готовых скриптов и их встраивание в HTML-код страниц на сайте.

Первые 2 способа могут подойти пользователям, не имеющим большого опыта в области веб-разработки. В свою очередь, 3-й метод во многих случаях более всего подходит специалистам, которые смогут корректно встроить соответствующий сервис обратной связи для сайта в структуру веб-страниц. Но это очень условные зависимости. Вполне может быть и так, что пользование сервером для генерации HTML-кода на практике окажется более сложной процедурой, чем загрузка готового PHP-скрипта.Рассмотрим то, каким образом указанные возможности могут задействоваться на практике.

Форма обратной связи на сайте как PHP-скрипт

Если пользователю предпочтителен вариант, при котором будет использоваться готовая форма обратной связи для сайта в виде PHP-скрипта, то загрузить ее можно, к примеру, со специализированного сайта script.landman.ru. Основные возможности соответствующих скриптов следующие:

Отправка сообщений пользователями сайта;

Фильтрация спама;

Возможность использовать скрипты в целях заказа тех или иных товаров и услуг.

В состав скриптов, предлагаемых командой разработчиков указанного сайта, входят:

PHP-скрипт, предназначенный для обработки сообщений от посетителей сайта;

Набор специальных шрифтов для антиспама.

Таким образом, в данном комплекте присутствует все необходимое для организации простой, и в то же время функциональной и надежной формы обратной связи. Можно отметить, что она достаточно оперативно может быть проинсталлирована и неподготовленным пользователем. Готовая форма обратной связи для сайта от landman.ru бесплатна, но при условии, что владелец портала, использующий ее, сохранит копирайты разработчиков.

Для того чтобы инсталлировать рассматриваемый скрипт, нужно, прежде всего, проверить файл config.php на предмет корректности адреса e-mail администратора сайта, на который будут приходить сообщения от пользователей. Кроме того, в файле Robots.txt следует прописать ограничение индексации папки с используемыми файлами, которая должна быть скопирована в корневой каталог сервера.

Формы без применения PHP

Форма обратной связи для сайта может быть инсталлирована на веб-страницы без применения скриптов PHP либо файлов, сформированных при задействовании какого-либо другого языка программирования, применение которых на конкретном сервере может быть затруднено либо предполагает использование дополнительных ресурсов, которые могут отсутствовать в распоряжении владельца сайта.

В данном случае речь идет как раз таки о генерации специального HTML-кода. Можно использовать тот, что предлагается разработчиками сервиса main-ip.ru/genform. Необходимо перейти по соответствующему адресу, после — ввести необходимые параметры в форму. Затем можно сгенерировать и скопировать код, после чего разместить его на той или иной странице администрируемого сайта.

Решить задачу — как на сайте сделать форму обратной связи, многие современные веб-дизайнеры предпочитают решать именно с задействованием сервиса main-ip.ru/genform, прежде всего, по той причине, что она позволяет осуществить настройку соответствующей формы по многим важнейшим параметрам. Таким как:

Ширина формы;

Наименование поля, в котором вводится имя пользователя, обращающегося к администрации сайта посредством механизма обратной связи;

Наименование поля указания электронного адреса пользователя;

Параметры различных дополнительных полей (в них могут быть указаны, к примеру, альтернативные способы связи с пользователем — в виде Skype или иного мессенджера);

Название текстового поля, предназначенного непосредственно для ввода сообщения.

Кроме того, используя страницу генерации HTML-кода для формы обратной связи, можно настроить:

Высоту блока с заголовком формы, его цвета — в HTML-кодировке;

Цвет текста, фиксируемого в заголовке, а также в форме сообщения;

Высоту текстовых областей, предназначенных для ввода сообщения, а также персональных данных пользователя;

Размер шрифта используемой формы.

Таким образом, сервис main-ip.ru/genform — в числе самых удобных для пользователей, которым нужна обратная связь для сайта. HTML-код, который генерируется сервисом, очень легко интегрируется в структуру веб-страниц. Главное — после инсталляции данного кода проверить корректность работы соответствующей формы.

Бесплатная обратная связь для сайта может быть организована посредством инструментов, которые имеются в составе популярных оболочек для управления онлайновыми порталами. Такими как, например, Joomla.

Форма обратной связи в Joomla

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

Как сделать обратную связь на сайте с помощью Joomla? Прежде всего нужно войти в главную панель данной системы, после чего выбрать опцию «Контакты». На открывшейся страницы необходимо создать новую категорию данных. Для этого нужно заполнить несколько полей - «Заголовок», а также «Псевдоним». После необходимо отразить в системе тот факт, что соответствующий контакт публикуется. Затем нужно сохранить настройки в системе.

После того как требуемая категория создана, необходимо сформировать веб-страницу, на которой будет расположена форма обратной связи для сайта. Для решения данной задачи вновь необходимо выбрать опцию «Контакты», после чего кликнуть на кнопке «Новый». Затем нужно заполнить необходимые сведения в открывшемся окне, после — отразить тот факт, что данные публикуются. Настройки, опять же, требуется сохранить.

Обратная связь в Joomla: встраивание формы в структуру сайта

Как только все необходимые процедуры будут осуществлены, то форму обратной связи можно будет размещать на сайте. В этих целях нужно войти в административную панель, после чего выбрать опцию «Меню» и установить место, в котором будет отражаться форма обратной связи. В соответствующем пункте меню необходимо создать новую опцию — ту, что связана с настройками области «Контакты».

После этого должна открыться страница, на которой пользователю необходимо зафиксировать наименование пункта меню, а также указать контакты, которые будут ему соответствовать. Введенные настройки нужно будет сохранить. После этого система обратной связи для сайта под управлением Joomla будет доступна пользователям в разделе «Контакты» администрируемого сайта.

Еще одна популярная платформа для работы с онлайновыми порталами — WordPress. Рассмотрим то, как сделать обратную связь на сайте с применением тех инструментов, которые она включает.

Форма обратной связи на WordPress

Рассматриваемая система управления онлайновыми порталами предполагает задействование в целях решения задачи, о которой идет речь, специальных плагинов. В частности, для организации формы обратной связи может использоваться скрипт Contact Form Plugin (его особенности мы изучим чуть позже). Обычно он доступен в меню главной панели управления WordPress в разделе «Плагины».

Необходимо, выбрав соответствующий скрипт, активировать его. После чего выбрать вкладку «Контакты», а затем скопировать код используемого плагина. После этого необходимо выбрать вкладку «Страницы» и выбрать опцию «Добавить новую». Затем вставить в соответствующее поле ранее скопированный код. При необходимости можно настроить внешний вид страницы с контактными данными. Как только она будет подготовлена, то соответствующую страницу можно опубликовать.

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

Настройка обратной связи на WordPress: нюансы

Использование сервиса WordPress в целях организации обратной связи может быть осуществлено, таким образом, с применением нескольких плагинов. Рассмотрим их. Выше мы отметили, что формы обратной связи, которые можно инсталлировать в структуру сайта на WordPress, могут быть основаны на Contact Form Plugin. Кроме него, в распоряжении пользователя рассматриваемой системы управления онлайновыми порталами находятся такие интерфейсы, как:

SimpleModal — всплывающая форма обратной связи для сайта;

Usernoise — очень быстрый плагин с плавающей кнопкой, при нажатии на которую открывается форма для ввода сообщения;

Contact Form в версии 7.

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

Изучим для примера то, как сделать обратную связь на сайте с применением плагина Contact Form в версии 7.

Настройка формы обратной связи на WordPress: плагин Contact Form 7

Для того чтобы задействовать возможности рассматриваемого плагина в целях решения задачи, о которой идет речь, нужно войти в панель управления WordPress, выбрать опцию «Плагины», после чего кликнуть на кнопке «Добавить новый».

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

Рассматриваемый плагин нужно установить и дождаться сообщения о его успешной инсталляции. Также соответствующее расширение необходимо активировать. После этого в пунктах меню, расположенном в левой части экрана браузера, появится опция Contact Form 7. Если навести на него курсор, то откроется дополнительное меню, в котором необходимо выбрать пункт «Добавить новую». Это нужно для создания нового интерфейса, в структуре которого будет присутствовать форма. Необходимо кликнуть на кнопке, которая называется так же как и пункт - «Добавить новую».

В открывшемся окне необходимо настроить необходимые опции для требуемой формы. Как сделать обратную связь на сайте с учетом особенностей настройки соответствующего интерфейса? Прежде всего, полезно уделить внимание выбору заголовка формы: он может звучать как «Связь с администрацией» или «Написать владельцу сайта».

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

Добавление созданной с помощью плагина Contact Form 7 форму обратной связи осуществляется так же, как и в случае с любым другим интерфейсом из числа предлагаемых разработчиками WordPress. Можно проверить то, насколько корректно работает новая форма обратной связи, отправив тестовое сообщение. Оно должно быть направлено на e-mail владельца сайта, который указывается при настройке параметров плагина.

Резюме

Итак, мы изучили то, как на сайте сделать форму обратной связи. Данная задача может быть решена при задействовании скриптов PHP (либо составленных на другом языке программирования), применения сгенерированного кода HTML или при использовании интерфейсов систем управления онлайновыми проектами — таких как Joomla или, к примеру, WordPress.

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

Одной из наиболее часто встречающихся на практике задач является реализация формы обратной связи. Тобишь написание ее HTML кода, оформление ее на CSS, создание PHP скрипта, который бы обрабатывал полученные от пользователя данные и отправлял их на нашу почту, написание JS скрипта, который бы проверял форму на адекватность вводимых данных, защита нашего детища от спама, чтобы наш почтовый ящик не обвалился от атак ботов.

Все вышеперечисленные моменты будут рассмотрены в нашем обзоре и подробно прокомментированы.

Итак, начинаем создание формы обратной связи:

HTML

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

< form method= "post" action= "mail.php" > < div class = "left" > < label for = "name" > Имя: < input maxlength= "30" type= "text" name= "name" /> < label for = "phone" > Телефон: < input maxlength= "30" type= "text" name= "phone" /> < label for = "mail" > E- mail : < input maxlength= "30" type= "text" name= "mail" /> < div class = "right" > < label for = "message" > Сообщение: < textarea rows= "7" cols= "50" name= "message" > < input type= "submit" value= "Отправить" />

И визуально она выглядит сейчас следующим образом:

Согласен, пока все некрасиво и ничего не понятно, но мы только начали.

Рассмотрим приведенный выше код подробно:

  • < form method= "post" action= "mail.php" > …


    для того, чтобы создать форму необходимо использовать тег form. Именно он определяет начало и конец формы для интерпретатора кода. У него, как и у любого тега, есть целый набор атрибутов, но обязательных для работы формы всего два, это method (метод отправки запроса на сервер, для форм стандартно используют post) и action (указывает путь к файлу-обработчику формы, именно в этом файле будет содержаться скрипт на PHP, который после будет отправлять введенные пользователем значения нам на почту, в нашем случае мы видим, что это файл называется mail.php и лежит он в том же директории сайта, что и рассматриваемая нами страница).
  • < input maxlength= "30" type= "text" name= "name" />


    Далее у нас следуют инпуты. Это собственно сами поля формы в которые пользователи будут вводить необходимую нам информацию (type="text" говорит о том, что это будет текст). Атрибут maxlength указывает сколько символов может ввести пользователь в данное поле формы. Самый важный атрибут это name – он задает имя конкретного поля. Именно по этим именам в дальнейшем PHP скрипт будет обрабатывать поступающую в него информацию. При желании можно еще задать атрибут placeholder, который выводит внутри поля текст исчезающий при установке курсора внутри нее. Одной из проблем плейсхолдера является то, что он не поддерживается некоторыми старыми браузерами.
  • < label for = "name" > Имя:


    Используется в случае если мы отказались от плейсхолдеров. Обычная подпись поля, атрибут for сообщает к какому конкретно полю относится данная подпись. Значением указывается name интересующего нас поля.
  • < textarea rows= "7" cols= "50" name= "message" >


    Также как и инпут предназначен для введения пользователем информации, только на этот раз поле заточено для длинных сообщений. Rows указывает размер поля в строках, cols в символах. В целом они задают высоту и ширину нашего поля.
  • < input type= "submit" value= "Отправить" />


    О том, что это кнопка для отправки формы нам сообщает type="submit", а value задает текст, который будет внутри этой кнопки.
  • < div class = "right" >


    использованы только для дальнейшего визуального оформления формы.

CSS

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

Мы использовали данный код:

form { background: #f4f5f7; padding: 20px; } form . left, form . right { display: inline- block; vertical- align: top; width: 458px; } form . right { padding- left: 20px; } label { display: block; font- size: 18px; text- align: center; margin: 10px 0px 0px 0px; } input, textarea { border: 1px solid #82858D; padding: 10px; font- size: 16px; width: 436px; } textarea { height: 98px; margin- bottom: 32px; } input[ type= "submit" ] { width: 200px; float: right; border: none; background: #595B5F; color: #fff; text- transform: uppercase; }

Подробно расписывать CSS я не вижу смысла, обращу Ваше внимание лишь на ключевые моменты:

  1. Не стоит писать оформление под каждый тег в форме. Старайтесь строить свои селекторы так, чтобы парой строк кода оформлять все необходимые Вам элементы.
  2. Не используйте для переноса строк и создания отступов лишние теги по типу < br>, < p> и тд, с этими задачами прекрасно справляется CSS со свойством display: block и margin с padding. Больше о том, почему не стоит пользоваться < br> в верстке вообще можете почитать в статье Тэг br, а так ли он нужен? .
  3. Не стоит пользоваться табличной версткой для форм. Это противоречит семантике этого тега, а поисковики любят семантичный код. Для того, чтобы формировать визуальную структуру документа нам достаточно тегов div, и заданных им в CSS свойств display: inline-block (выстраивает блоки в ряд) и vertical-align: top (не дает им разбежаться по экрану), задаем им необходимую высоту и вуаля, ничего лишнего и все расположено так, как нам нужно.

Для желающих экономить свое время на оформлении сайтов могу посоветовать пользоваться CSS фреймворками при создании сайтов, особенно самописных. Мой выбор в этом плане- Twitter Bootstrap . Урок по оформлению форм с его использованием можно посмотреть .

PHP

Ну вот и пришло время сделать нашу форму работоспособной.

Заходим в наш корневой каталог сайта и создаем там файл mail.php, к которому мы ранее указывали путь в атрибуте action тега form.

В конечном итоге его код будет выглядеть следующим образом:

Ваше сообщение успешно отправлено \" javascript: history.back()\" >Вернуться назад

" ; if (! empty ($_POST [ "name" ] ) and ! empty ($_POST [ "phone" ] ) and ! empty ($_POST [ "mail" ] ) and ! empty ($_POST [ "message" ] ) ) { $name = trim (strip_tags ($_POST [ "name" ] ) ) ; $phone = trim (strip_tags ($_POST [ "phone" ] ) ) ; $mail = trim (strip_tags ($_POST [ "mail" ] ) ) ; $message = trim (strip_tags ($_POST [ "message" ] ) ) ; mail (, , "Вам написал: " . $name . "
Его номер: " . $phone . "
Его почта: " . $mail . "
Его сообщение: "
. $message , ) ; echo "Ваше сообщение успешно отправлено!
Вы получите ответ в ближайшее время
$back "
; exit ; } else { echo ; exit ; } ?>

Обсуждение HTML и CSS части этого документа можно пропустить. По своей сути это обычная страница сайта, которую Вы можете оформить по своему желанию и необходимости. Рассмотрим же важнейшую ее часть – PHP скрипт обработки формы:

$back = "

\" javascript: history.back()\" >Вернуться назад

" ;

Этой строкой мы создаем ссылку для возвращения на предыдущую страницу. Поскольку мы заранее не знаем с какой страницы пользователь попадет на эту, то делается это при помощи маленькой JS функции. В дальнейшем мы просто будем обращаться к этой переменной для вывода ее в нужных нам местах.

if (! empty ($_POST [ "name" ] ) and ! empty ($_POST [ "phone" ] ) and ! empty ($_POST [ "mail" ] ) and ! empty ($_POST [ "message" ] ) ) { //внутрення часть обработчика } else { echo "Для отправки сообщения заполните все поля! $back " ; exit ; }

Тут мы прикручиваем проверку формы на наполненность полей. Как вы догадались, в части $_POST["name"] в кавычках мы пишем значение атрибута name наших инпутов.

Если все поля заполнены, то скрипт начнет обрабатывать данные в своей внутренней части, если же хоть одно поле не было заполнено, то на экран пользователя выведется сообщение с требованием заполнить все поля формы echo "Для отправки сообщения заполните все поля! $back" и ссылкой для возврата на предыдущую страницу, которую мы создали самой первой строкой.

Дале вставляем во внутреннюю часть обработчика формы:

$name = trim (strip_tags ($_POST [ "name" ] ) ) ; $phone = trim (strip_tags ($_POST [ "phone" ] ) ) ; $mail = trim (strip_tags ($_POST [ "mail" ] ) ) ; $message = trim (strip_tags ($_POST [ "message" ] ) ) ;

Таким образом мы очистили вводимые пользователем данные от html тегов и лишних пробелов. Это позволяет нам обезопасить себя от получения вредоносного кода в высылаемых нам сообщениях.

Проверки можно и усложнить, но это уже по вашему желанию. Минимальную защиту на серверной стороне мы уже поставили. Дальнейшее мы сделаем на стороне клиента используя JS.

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

После чистки тегов добавляем отправку сообщения:

mail ("почта_для_получения_сообщений@gmail.com" , "Письмо с адрес_вашего_сайта" , "Вам написал: " . $name . "
Его номер: " . $phone . "
Его почта: " . $mail . "
Его сообщение: "
. $message , "Content-type:text/html;charset=windows-1251" ) ;

Именно эта строка и занимается формированием и отправкой сообщения к нам. Заполняется она следующим образом:

  1. "почта_для_получения_сообщений@gmail.com" – сюда между кавычек вставляете свою почту
  2. "Письмо с адрес_вашего_сайта" – это тема сообщения, которое будет приходить на почту. Можно написать сюда что угодно.
  3. "Вам написал: ".$name." < br /> Его номер: ".$phone." < br /> Его почта: ".$mail." < br /> Его сообщение: ".$message – формируем сам текст сообщения. $name – вставляем информацию заполненную пользователем через обращение к полям из предыдущего шага, в кавычках описываем что значит это поле, тегом < br /> делаем перенос строки, чтобы сообщение в целом было читабельно.
  4. Content-type:text/html;charset=windows-1251 - в конце идет явное указание типа данных передаваемого в сообщении и его кодировки.

ВАЖНО!

Кодировка указанная в «голове» документа ( < meta http- equiv= "Content-Type" content= "text/html; charset=windows-1251" /> ), кодировка из сообщения Content-type:text/html;charset=windows-1251 и в целом кодировка файла PHP должны совпадать иначе в получаемых на почту сообщениях вместо русских или английских букв будут выводиться «кракозябры».

Многие не указывают кодировку отправляемого сообщения явно, но на некоторых почтовых клиентах из-за этого в дальнейшем могут возникнуть проблемы (на почту приходят нечитабельные письма), потому я рекомендую ее все-же указывать.

Проверка формы на адекватность вводимых данных

Чтобы пользователи по невнимательности не промахивались полями и заполняли все корректно стоит поставить проверку вводимых данных.

Это можно сделать как на PHP на стороне сервера, так и на JS на стороне клиента. Я использую второй вариант, поскольку так человек сразу может узнать что он сделал не верно и исправить ошибку не делая дополнительных переходов по страницам.

Код скрипта вставляем в том же файле, где у нас располагается HTML часть формы. Для нашего случая он будет выглядеть так:

< script> function checkForm(form) { var name = form. name. value; var n = name. match(/ ^[ A- Za- zА- Яа- я ] * [ A- Za- zА- Яа- я ] + $/ ) ; if (! n) { alert("Имя введено неверно, пожалуйста исправьте ошибку" ) ; return false ; } var phone = form. phone. value; var p = phone. match(/ ^[ 0 - 9 + ] [ 0 - 9 - ] * [ 0 - 9 - ] + $/ ) ; if (! p) { alert("Телефон введен неверно" ) ; return false ; } var mail = form. mail . value; var m = mail . match(/ ^[ A- Za- z0- 9 ] [ A- Za- z0- 9 \. _- ] * [ A- Za- z0- 9 _] *@ ([ A- Za- z0- 9 ] + ([ A- Za- z0- 9 - ] * [ A- Za- z0- 9 ] + ) * \. ) + [ A- Za- z] + $/ ) ; if (! m) { alert("E-mail введен неверно, пожалуйста исправьте ошибку" ) ; return false ; } return true ; }

Ну а теперь обычный разбор:

Для того, чтобы при нажатии на кнопку отправки формы, у нас происходила ее проверка вешаем запуск нашего скрипта на тег form:

< form method= "post" action= "mail.php" onSubmit= "return checkForm(this)" >

Теперь по пунктам забираем состав проверки:


Как можете заметить такая мини проверка пишется для каждого нашего поля. Проверку на одно поле я выделил на скриншоте красным квадратом, у других полей она имеет аналогичную структуру и если возникнет необходимость добавить поле или убрать его, Вы теперь с легкостью сможете это сделать.

Здравствуйте дорогие читатели, сегодня хочу рассказать вам о том, как я создаю формы, для получения контактных данных пользователя.

На сегодняшний день, , является в структуре лендинг пейдж. Ведь это один из способов принять заказ или отправить каталог вашей продукции, предварительно получив e-mail посетителя.

Создание формы обратной связи – html разметка

Обычно мне хватает трех полей, и в большинстве случаев, я использую такую разметку для создания контактной формы:

Попробуйте открыть в браузере данный код и посмотрите что у вас получилось, в зависимости от того, какой интернет-обозреватель используете, должно выглядеть примерно так:

Если возникнут какие-нибудь вопросы по разметке, смело задавайте их в комментариях, постараюсь подробно ответить, а в статье не буду описывать каждый элемент, чтобы не увеличивать ее размер. Кроме того, элементы достаточно просты.


Создание формы обратной связи — css разметка

Давайте зададим стили нашей форме и приведем ее к читабельному виду:

/* Стили формы */ #application { width: 475px; margin: 0 auto; } /*Стили полей для ввода*/ #applicationName, #applicationEmail, #applicationTelephone { width: 100%; height: 73px; background: none; margin-top: 25px; border: 1px solid #fff; border-radius: 40px; text-align: center; color: #fff; font-size: 24px; } /*Стили полей при клике по ним*/ #applicationName:focus, #applicationEmail:focus, #applicationTelephone:focus { border: 1px solid #30ad64; } /*Стили текста, выводящегося в placeholder*/ ::-webkit-input-placeholder { color: #efefef; font-family: "PT Sans", sans-serif; text-shadow: 0 1px 1px rgba(0, 0, 0, .3); } ::-moz-placeholder { color: #fff; font-family: "PT Sans", sans-serif; text-shadow: 0 1px 1px rgba(0, 0, 0, .3); } /* Firefox 19+ */ :-moz-placeholder { color: #fff; font-family: "PT Sans", sans-serif; text-shadow: 0 1px 1px rgba(0, 0, 0, .3); } /* Firefox 18- */ :-ms-input-placeholder { color: #fff; font-family: "PT Sans", sans-serif; text-shadow: 0 1px 1px rgba(0, 0, 0, .3); } ::placeholder { color: #fff; text-shadow: 0 1px 1px rgba(0, 0, 0, .3); } /*Стили для кнопки*/ .applicationButton { margin-top: 25px; background: #30ad64; border: none; width: 100%; height: 73px; border-radius: 40px; color: #fff; font-size: 24px; text-transform: uppercase; font-family: "PT Sans", sans-serif; cursor: pointer; } .applicationButton:hover { background: #d68c18; }

Если хотите, чтобы цвет кнопки менялся плавно, добавьте в.applicationButton и.applicationButton:hover такую строку:

Transition: .6s;

Где.6s — время анимации в миллисекундах.
Теперь наша форма приобрела красивый вид, сейчас она выглядит так:


Создание формы обратной связи — php разметка

Теперь нам необходимо создать файл application.php. Он будет получать введенные параметры из формы и отправлять их к нам на почту.

Структура у него, как у обычного html файла, это может быть страничка, на которой вы напишите «Спасибо, ваша заявка принята. После обработки заявки наши менеджеры свяжутся с вами»

То есть, когда пользователь нажмет кнопку, его перекинет на страницу application.php. Это полноценная страница, и вы должны оформить ее соответствующим образом.

"; $msg .= "

Cообщение с сайта

\r\n"; $msg .= "

От кого: ".$username."

\r\n"; $msg .= "

Почта: ".$usermail."

\r\n"; $msg .= "

Сайт: ".$usertel."

\r\n"; $msg .= ""; // отправка сообщения if(@mail($sendto, $subject, $msg, $headers)) { echo "
"; } else { echo "
"; } ?>

Давайте немного поясню код:

$sendto = "[email protected]"; // почта, на которую будет приходить письмо $username = $_POST["name"]; // сохраняем в переменную данные полученные из поля c именем $usertel = $_POST["telephone"]; // сохраняем в переменную данные полученные из поля c телефонным номером $usermail = $_POST["email"]; // сохраняем в переменную данные полученные из поля c адресом электронной почты

Тут, думаю, — понятно.

Теперь давайте сформируем заголовок письма.

$subject = "Новое сообщение"; $headers = "From: " . strip_tags($usermail) . "\r\n"; $headers .= "Reply-To: ". strip_tags($usermail) . "\r\n"; $headers .= "MIME-Version: 1.0\r\n"; $headers .= "Content-Type: text/html;charset=utf-8 \r\n";

Строка $subject = «Новое сообщение»; — отвечает за тему письма, может написать там: «Заявка с сайта» или то, что вам больше подходит.

Предлагаю сделать так, чтобы письмо приходило, от адреса, указанного в поле input type=»email». То есть с того, с которого пользователь ввел при заполнении формы. Для этого пропишем следующие строки:

$headers = "From: " . strip_tags($usermail) . "\r\n";

То есть мы подставим данные из переменной $usermail, где и хранится информация из поля, отвечающего за ввод email адреса.

Теперь зададим внешний вид письма. Вы можете оформить его как угодно, а я предлагаю следующую структуру:

$msg = ""; $msg .= "

Cообщение с сайта

\r\n"; $msg .= "

От кого: ".$username."

\r\n"; $msg .= "

Почта: ".$usermail."

\r\n"; $msg .= "

Телефон: ".$usertel."

\r\n"; $msg .= "";

Первой строкой задаем шрифт письма. Второй — выводим сообщение, например: «Заявка с формы обратной связи на первом экране». Третей, четвертой и пятой строкой передаем данные из формы. Каждая с новой строки.

Теперь нужно отправить письмо функцией mail и определить, что будет происходить при успешной и не успешной отправки письма:

If(@mail($sendto, $subject, $msg, $headers)) { echo "

"; } else { echo "
"; } ?>

Я сделал так, что в любом из случаев выведется картинка с соответствующим текстом. Вы можете вместо картинки вывести полноценную страницу. Просто пропишите код, вместо картинки.

Через несколько секунд, после вывода изображения, я делаю редирект (автоматическое перенаправление) на главную страницу. Сделать это можно, вписав следующую строку между тегами head;

То есть через 4 секунды пользователя автоматически вернет на главную страницу!

Я не эксперт в php — это back-end язык программирования, меня всю жизнь тянуло к изучению front-end. Поэтому не судите строго. Да, здесь можно сделать проверки на заполнение контактных форм и так далее, но мне всегда хватало и этого, так что, если у кого-то есть предложение как улучшить этот код, напишите пожалуйста в комментариях или на почту, поправлю урок, спасибо!

Кстати, если вам нужна форма обратной связи без перезагрузки страницы, то почитать о том как ее установить можно в

Может быть, кому-то не очень понятен материал, но если вы в точности повторите мои действия, то у вас обязательно будет работать контактная форма. Возникнут вопросы — пишите в комментариях, постараюсь ответить! До встречи на блоге!

P.s. Так как я стал очень часто получать вопросы о том, почему не работает форма и не приходят письма на почту, то решил описать несколько наиболее популярных причин, по которым это может происходить:

  • Тестируете форму не на сервере.
  • Тестируете форму на бесплатном хостинге.
  • Тестируете форму на платном хостинге, но в бесплатном тестовом периоде.

В этих случаях письма не будут приходить к вам на почту.

Если вам лень разбираться и самостоятельно делать форму, то рекомендую обратить внимание на .

23/07/2014 12/07/2018

dimadv7

Сегодня будем работать над созданием красивой HTML формы обратной связи для сайта, работающей на PHP и имеющею встроенную защиту от спама. Никаких особых знаний вам не потребуется, достаточно будет основ html и элементарной логики. Я дам готовые файлы, которые вы сможете вставить на сайт без изменений или скорректировать под свои нужды.

Недавно я делал статью о том, как сделать с помощью плагина Contact Form 7. Также просто можно сделать форму обратной связи на Joomla и других популярных CMS.

Но, что делать сайтам, которые не используют популярные CMS? – Остается делать все руками.

Кроме того, использование обратной связи без плагинов возможно и для WordPress. Лишние плагины создают немалую нагрузку на сервера и отказ от них позволяет ускорить работу сайта.

Заказать установку и настройку готовой формы за 500 рублей можно здесь (это для тех кому лень руками поработать или навыка недостаточно).

Принцип работы формы обратной связи на html

Наша форма будет иметь 5 полей для ввода данных – имя, электронный адрес, телефон, адрес сайта, текст сообщения (вы сможете удалить или изменить их самостоятельно).

Все поля, кроме адреса веб сайта будут обязательны для заполнения (это вы тоже сможете настроить самостоятельно).

Для полей с email адресом и сайтом будет проводиться обязательная проверка правильности ввода данных.

Конечная форма связи будет иметь вот такой вид:


Для работы контактной формы, созданной на html, требуется 3 элемента.

Первый отвечает за структуру самой формы, за тип и количество полей ввода данных. Это обычный html код.

Второй отвечает за обработку данных, которые пользователь вводит в поля формы. Он определяет, что, куда и в каком виде пересылать, после того, как будет нажата кнопка отправки сообщения. Для реализации используется специальный PHP скрипт.

Третий отвечает за внешний вид. Устанавливает размеры и расположение полей ввода данных, добавляет различные цвета и эффекты. Это все задается CSS стилями.

Демо версия формы

Настройку каждого из этих элементов мы с вами разберем по шагам.

Создание HTML макета

Чтобы не делать статью слишком длинной и не добавлять отдельно каждый элемент, я приведу полный html код, а ниже опишу каждый блок и возможные изменения.

Для обозначения форм в html используется тег

, внутри которого заполняются необходимые параметры.

Правильный формат "[email protected]"

Правильный формат "+7-123-4567890"

Правильный формат "http://someaddress.com"

"Введите ваше имя" required />

"Введите электронный адрес" required />

"Введите номер телефона" required />

Правильный формат "+7-123-4567890"

"Введите адрес вашего сайта" pattern = "(http|https)://.+" />

Правильный формат "http://someaddress.com"

Начнем с первой строки.

class=”contact_form” – указываем класс, для того, чтобы в будущем задать CSS стили.

action=”contact-form.php” – указываем название файла со скриптом, который будет обрабатывать данные формы и осуществлять отправку сообщения. Если файл лежит в той же папке, что и страница с формой, то достаточно указать только название файла, если в другой, то нужно будет указать и путь к файлу.

Дальше идут 4 блока

Отвечающих за вывод полей для ввода данных, по названиям понятно, какой за что отвечает. Сами поля выводятся с помощью тегов , внутри которого задаются следующие характеристики:

Type – отвечает за тип вводимых данных, text – обычный текст, email – электронный адрес, такие поля автоматически проверяются на правильность (должна присутствовать @), tel – телефон, url – адрес сайта.

Name – собственное название самого элемента, оно необходимо, что скрипт знал как использовать данные каждого поля. Если вы сделаете несколько полей одного типа, то вам необходимо каждому полю присвоить свое name.

Placeholder – это подсказка, находящаяся внутри поля, текст, замещающий пустое поле элемента. Ее можно изменить или удалить, на работу формы она не влияет.

Required – этот параметр указывает на то, что поле обязательно для заполнения. Вы можете самостоятельно решить, какие элементы обязательны, а какие нет.

pattern=”(http|https)://.+” – эта конструкция служит для проверки корректности поля веб сайт, указывает на то, что адрес обязательно должен содержать http://текст или https://текст , в противном случае будет ошибка.

Для некоторых полей задана всплывающая подсказка, которая появляется при выборе элемента. Ее задет , где form_hint является классом элемента (его свойства прописываются в CSS). Текст во всплывающей подсказке для каждого поля контактной формы можно задать любой. Если такая фишка вам не нужна – просто удалите весь тег .

Поля для ввода самого сообщения размечается тегом