ТЕХНОЛОГИЯ: Java Script
ПОДДЕРЖКА: все распространенные браузеры с поддержкой Java Script.
Чтобы спрятать e-mail от спам-роботов применяют функцию на языке JavaScript. Она получает части адреса e-mail и собирает из них гиперссылку. Внутри секции документа <head> размещают следующий код:
<script language="javascript" type="text/javascript">
//<!--
//<![CDATA[
function maillink(mailprefix, maildomain, mailsuffix, mailname)
{
var mailprefix; // первая часть адреса до @
var maildomain; // домен
var mailsuffix; // зона домена (ru, com и т. п.)
var mailname; // текст ссылки (имя получателя)
if (mailname == null) { mailname = "e-mail"; }
document.write('<a href="mailto:' + mailprefix + '%40' + maildomain + '.' + mailsuffix + '">' + mailname + '</a>');
}
//]]>
//-->
</script>
С помощью тега <script> объявляют, что в документ встроен код JavaScript. Функция JavaScript получает четыре параметра:
● первую часть e-mail-адреса до @ (var mailprefix;),
● домен почтового сервера (var maildomain;),
● зону домена (var mailsuffix;),
● текст гиперссылки (var mailname;).
Последний параметр необязателен, и, если он не задан, для ссылки используется текст «e-mail». В финале JavaScript печатает («document.write()») на странице гиперссылку с адресом электронной почты.
Использовать эту функцию в документе необходимо следующим образом:
Пишите на мой <script language="javascript" type="text/javascript">maillink("e-teach","mail","ru");</script>.
Спамерским роботам, собирающим на сайтах почтовые адреса, будет непросто разобраться в подобном представлении электронного адреса.
Листинг 5_js_email - Полный код страницы со ссылкой на адрес e-mail электронной почты.
<html xmlns="https://www.w3.org/1999/xhtml">
<head>
<title>ЗАЩИТА E-MAIL АДРЕСА ОТ СПАМА</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<script language="javascript" type="text/javascript">
|
//<!--
//<![CDATA[
function maillink(mailprefix, maildomain, mailsuffix, mailname)
{
var mailprefix; // первая часть адреса до @
var maildomain; // домен
var mailsuffix; // зона домена (ru, com и т. п.)
var mailname; // текст ссылки (имя получателя)
if (mailname == null) { mailname = "e-mail"; }
document.write('<a href="mailto:' + mailprefix + '%40' + maildomain + '.' + mailsuffix + '">' + mailname + '</a>');
}
//]]>
//-->
</script>
</head>
<body>
<p>Для того, что бы спрятать e-mail от спам-роботов размещают внутри секции документа код JavaScript. С помощью тега script объявляют, что в документ встроен код JavaScript. Функция JavaScript получает четыре параметра: первую часть e-mail-адреса до @, домен почтового сервера, зону домена, текст гиперссылки. Последний параметр необязателен, и, если он не задан, для ссылки используется текст "e-mail". В финале JavaScript печатает ("document.write()") на странице гиперссылку с адресом электронной почты.</p>
<p>С радостью отвечу на все вопросы.
Пишите на мой <script language="javascript" type="text/javascript">maillink("e-teach","mail","ru");</script>.</p>
<hr />
<p>© 2005 <script language="javascript" type="text/javascript">maillink("e-teach","mail","ru","Прохоров Виктор Сергеевич");</script></p>
</body>
</html>
Рис.6. Страница сайта, содержащая ссылку на электронный адрес.
Рис.6. Форма для электронного письма, которая открывается, если щелкнуть ссылку на электронный адрес.
ПРОВЕРКА ПОЛЕЙ ФОРМЫ
ТЕХНОЛОГИЯ: Java Script
ПОДДЕРЖКА: все распространенные браузеры с поддержкой Java Script.
Часто на web-сайте размещают форму для отправки сообщений на e-mail:
<form name="mailer" id="mailer" action="/mail.php" method="post" onsubmit="return checkmailform();">
|
E-mail отправителя:<br /> <input type="text" name="mailsender" id="mailsender" /><br />
Текст письма:<br /> <textarea name="mailtext" id="mailtext" cols="35" rows="5"></textarea><br />
<input type="submit" value="Отправить" />
</form>
Она состоит из полей ввода e-mail, текста и кнопки отправки данных серверному скрипту mail.php. Для формы и полей данных в атрибутах id и name указаны уникальные имена, которыми оперируют из JavaScript. С помощью события документа (action) onsubmit, возникающего при отправке формы, вызывают функцию JavaScript:
function checkmailform()
{
if ((document.forms.mailer.mailsender.value == null) || (document.forms.mailer.mailsender.value.length < 7))
{
alert("Заполните поле: E-mail отправителя");
document.forms.mailer.mailsender.focus();
return false;
}
if (! (/\w+@\w+\.[a-z]{2,4}/.test(document.forms.mailer.mailsender.value)))
{
alert("Введите правильный e-mail адрес");
document.forms.mailer.mailsender.focus();
return false;
}
if ((document.forms.mailer.mailtext.value == null) || (document.forms.mailer.mailtext.value.length < 10))
{
alert("Заполните поле: Текст письма");
document.forms.mailer.mailtext.focus();
return false;
}
return true;
}
Функция делает три проверки:
● введен ли текст в поле «E-mail» и не меньше ли он 7 символов;
● является ли адрес правильным e-mail-адресом;
● введен ли текст сообщения и не меньше ли он 10 символов.
Если хотя бы одна из проверок не пройдена, пользователь получает сообщение об ошибке. Если проблем не обнаружено, скрипт не мешает отправке данных.
Листинг 6_form_check - Проверка полей формы для отправки сообщений на e-mail.
<html xmlns="https://www.w3.org/1999/xhtml">
<head>
<title>Форма отзыва</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<script language="javascript" type="text/javascript">
|
//<!--
//<![CDATA[
function checkmailform()
{
if ((document.forms.mailer.mailsender.value == null) || (document.forms.mailer.mailsender.value.length < 7))
{
alert("Заполните поле: E-mail отправителя");
document.forms.mailer.mailsender.focus();
return false;
}
if (! (/\w+@\w+\.[a-z]{2,4}/.test(document.forms.mailer.mailsender.value)))
{
alert("Введите правильный e-mail адрес");
document.forms.mailer.mailsender.focus();
return false;
}
if ((document.forms.mailer.mailtext.value == null) || (document.forms.mailer.mailtext.value.length < 10))
{
alert("Заполните поле: Текст письма");
document.forms.mailer.mailtext.focus();
return false;
}
return true;
}
//]]>
//-->
</script>
</head>
<body>
<form name="mailer" id="mailer" action="/mail.php" method="post" onsubmit="return checkmailform();">
E-mail отправителя:<br /> <input type="text" name="mailsender" id="mailsender" /><br />
Текст письма:<br /> <textarea name="mailtext" id="mailtext" cols="35" rows="5"></textarea><br />
<input type="submit" value="Отправить" />
</form>
</body>
</html>
Рис.7. Отображение формы для отправки сообщений на e-mail.
Рис.8. Сообщение о неправильно введенном адресе электронной почты (пропущена собака).