Как сделать форму для сайта

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

Простейшая форма

Давайте создадим вместе простейшую форму. Она будет представлять собой поле ввода имени, e-mail и сообщения. Такие формы чаще всего используются для организации связи с посетителями сайта. Корректно заполненное поле «e-mail» укажет вам, куда писать ответ на сообщение, а поле «Имя» подскажет, как обратиться к собеседнику. Вот код этой формы:

<form method="POST" action="/send.php" target="_blank">
<p>Имя (как к вам обращаться):</p>
<input name="name">
<p>e-mail для связи с вами:</p>
<input name="contact">
<p>Что вы хотите сказать:</p>
<textarea name="message"></textarea>
<p><input type="submit" value=" Отправить "></p>
</form>

А вот так форма выглядит:

Имя (как к вам обращаться):

e-mail для связи с вами:

Что вы хотите сказать:

Но это только половина дела. Ведь нам ещё надо обработать получение сообщения, отправленного через эту форму. Для этого надо создать файл «send.php» в корневой папке сайта. В первой строке описанного выше кода есть инструкция action="/send.php", которая как раз указывает, что данные формы должен обрабатывать файл «send.php» в корне сайта.

Код файла send.php:

<?
# получаем данные:
$d = @ array($_POST['name'], $_POST['contact'], $_POST['message']);
# Записываем в файл messages.txt
@ file_put_contents('messages.txt', join(' | ',$d).
  "\n==== конец сообщения ====\n", FILE_APPEND);
# Сообщение об успешном завершении
echo 'Yes! Message was sent. Thank you!';

В результате полученное сообщение будет записано в файл messages.txt в корне вашего сайта, т.е. будет доступно по адресу http://вашсайт/messages.txt и выглядеть примерно вот так:

Вася | vasya@...ru | Здравствуйте, передайте Пете привет!
==== конец сообщения ====
Петя | petya@...ru | Доброе время! Мне кто-нибудь привет передавал?
==== конец сообщения ====

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

Как вы убедились, даже для создания простейшей формы необходимы навыки программирования. А без соответствующих навыков работоспособность формы не гарантирована, даже если вы точно скопируете вышеприведённые коды и вставите их куда нужно. Чаще всего возникают проблемы с кодировками, возможны трудности с созданием файлов на хостинге и установкой нужных прав (иногда требуется — зависит от настроек хостинга).

Потому и существуют готовые решения, избавляющие вебмастеров от технической стороны вопроса, позволяющие сосредоточить усилия на заполнении сайта полезной информацией, а не на его функционировании. Например, можно использовать плагины для используемой вами CMS — это требует навыков администрирования, но без необходимости программировать. Пример плагина для WordPress: «Fast Secure Contact Form» (в Панели администратора заходим в меню Плагины — Добавить новый, в поиске пишем «Fast Secure Contact Form» и жмём «Установить»).

Наипростейшее решение для вебмастеров с минимумом технических навыков — воспользоваться услугами сайта formdesigner.ru, который представляет собой конструктор форм заказа, позволяющий сгенерировать любую форму. Например, есть стандартные варианты: формы обратной связи, приёма заявок, голосования, оформления подписки и т.п.

Запись опубликована в рубрике Web-мастеринг. Короткая ссылка для добавления в закладки: Как сделать форму для сайта.

2 ответа к “Как сделать форму для сайта”

Олег:

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

Pavluha.Net:

Хорошо, Олег, заглядывайте. Буду рад)

Добавить комментарий для Олег Отменить ответ

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