Известно, что пользователь очень ленив. Заставить его открыть почтовую программу, взять, да и написать вам письмо задача практически невыполнимая. Пользователь решится на такой шаг только в самом крайнем случае: если очень сильно захочет вас поругать или, наоборот, ему совершенно необходима информация, которая упоминается на вашем сайте. Если же он сомневается в гениальности вашего предложения, его лень проголосует не в вашу пользу.
Хозяин сайта, напротив, очень хочет обратной связи: узнать мнение о своем творении, получить список замеченных погрешностей, заказ на рекламируемый продукт, собрать коллекцию ссылок единомышленников
Есть простое средство, притупляющее лень: предложите пользователю заполнить форму и отправить содержание простым щелчком по экранной кнопке, миную утомительную работу в почтовой программе.
Ниже представлен работающий пример. Вы можете его испытать. Поставьте отметку на нужной позиции и нажмите кнопку Голосовать.
После того, как нажата экранная кнопка, содержимое формы будет отправлено по электронной почте в адрес Ивана Сидорова.
Возможно перед отправкой на экран будет выведено предупреждение (зависит от настроек браузера): Производится передача формы по электронной почте. Можно продолжить или отменить передачу.
Существует ли какая-либо опасность для отправителя такого сообщения? Реальная опасность одна: ваш электронный адрес может быть использован в корыстных целях, например, включен в список рассылки спама и вы будете получать по почте навязчивые сообщения и рекламу. Это еще одна причина (помимо лени), по которой пользователи очень неохотно посылают письма незнакомым корреспондентам.
Можно дать единственно правильную рекомендацию: никогда не пользуйтесь
доверчивостью пользователя и не включайте полученный адрес в списки
рассылки без ведома корреспондента, даже в самых светлых
просветительных целях. Если вы будете поступать иначе, о вас
распространится дурная слава, и вы можете получить в свой почтовый
ящик кусочек
И последний совет: сами никогда не мстите обидчику посылкой
мегабайтного мусора.
<FORM action=mailto:kuk@robotland.botik.ru method=post enctype="text/plain"> <TABLE border=1 cellpadding=5 cellspacing=0 bgcolor=#DFD9BB> <TR> <TD colspan=3>Вам нравятся назаметки Сидорова?</TD> </TR> <TR> <TD><INPUT type=radio name=bonus value=super>отличные</TD> <TD><INPUT type=radio name=bonus checked value=good>хорошие</TD> <TD><INPUT type=radio name=bonus value=bad>плохие</TD> </TR> <TR> <TD colspan=3> <INPUT type=submit name=vote value=Голосовать> </TD> </TR> </TABLE> </FORM>
Форма это блок
<FORM...> ... <INPUT type=radio ...> ... <INPUT type=radio ...> ... <INPUT type=radio ...> ... <INPUT type=submit ...> ... </FORM>
Внутри формы для декораций, надписей и форматирования могут быть использованы обычные HTML-теги, например, табличные.
Команда FORM имеет следующие атрибуты:
атрибут | описание |
---|---|
action |
Задает адрес для отправки формы по сети. Вы можете послать форму на
сервер, где она будет обработана программой (CGI-скриптом), а можете
указать в качестве значения атрибута адрес электронной почты и форма
будет послана браузером по <FORM action=mailto:kuk@robotland.botik.ru> |
enctype |
Задает кодирование передаваемых по сети данных. Все будет хорошо
работать, если задать значение атрибута так:
<FORM action=mailto:kuk@robotland.botik.ru enctype="text/plain"> |
method |
Задает способ передачи формы. Атрибут имеет два значения:
get и post. Метод post более
универсальный. Не вникая в детали работы этих двух методов, предлагаю
магическую запись, которая заставит браузер послать форму
по указанному адресу:
<FORM action=mailto:kuk@robotland.botik.ru enctype="text/plain" method=post> |
Радиокнопки (селекторные кнопки, переключатель) предназначены для выбора одного варианта из нескольких альтернативных. Подобно кнопочному переключателю диапазона волн в радиоприемнике выбор одной кнопки автоматически снимает отметку с другой.
В группе радиокнопок активной может быть только одна. Отметка на новой кнопке автоматически снимает отметку на старой. |
<INPUT type=radio>
Дополнительные атрибуты:
<INPUT type=radio name=bonus value=super> <INPUT type=radio name=bonus value=good checked> <INPUT type=radio name=bonus value=bad>
Атрибуты тега FORM определяют куда и как будет послана форма. А сам момент отправки наступает тогда, когда пользователь нажимает кнопку, которая задается так:
<INPUT type=submit>
Дополнительные атрибуты:
Обычно браузер не сам отсылает форму, а поручает работу почтовой программе, установленной по умолчанию в операционной системе компьютера (например, Outlook).
Если в примере Голосуй за Сидорова отметка стоит на позиции хорошие, то по нажатию на кнопку Голосовать в адрес kuk@robotland.botik.ru уйдет письмо с темой Форма отправлена из Microsoft Internet Explorer (для браузера IE) следующего содержания:
bonus=good vote=Голосовать |
Таким образом, браузер составляет письмо из пар
имя=значение, которые выбираются
В качестве обратного адреса в письме браузер указывает адрес
пользователя компьютера, с которого отправляется форма (и вот
Вы можете, создав собственный HTML-файл, провести серию опытов, посылая формы самим себе: просто укажите свой собственный адрес в качестве значения атрибута action тега FORM.
Если вам лень открывать текстовый редактор и писать HTML-коды, можете воспользоваться следующим испытательным стендом. Введите свой электронный адрес, нажмите кнопку Голосовать и форма будет отправлена вам, а не Сидорову.
Пример Голосуй за Сидорова не слишком полезен для практики. Придется завести у себя файл с тремя записями:
|
После получения очередного автоматического письма, нужно увеличивать на 1 число в нужной строке. Затем тешить свое самолюбие, или рвать на себе волосы, если полученные результаты не нравятся.
Однако, такой ручной способ получения статистических данных идет не в ногу с современными информационными технологиями. Гораздо приятнее, если сбор и обработка данных проходит совсем без нашего участия, а результаты автоматически отображаются на странице, которую смотрит пользователь. Как, например, увеличение счетчика посещения страницы. Но это тот случай, когда форму надо отправлять не по электронному адресу, а на вход программы-обработчика, размещенной на сервере. Программа автоматически изменит значения переменных, накопляющих сумму баллов и представит результаты прямо на гипертекстовой странице.
Написание серверных программ-обработчиков это большая тема
отдельных заметок или, даже, тема отдельного учебника. Но не всегда
нужно писать такие программы. Бывают ситуации, когда обычная посылка
формы по