Как спрятать адрес электронной почты от спам-ботов

  • 15.09.2014

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

Адрес со ссылкой

Код ниже выведет адрес электронной почты со ссылкой:

echo JHtmlEmail::cloak('demo@site.ru');

Или альтернативный вариант (в дальнейшем я буду использовать только JHtmlEmail):

echo JHtml::_('email.cloak', 'demo@site.ru');

На веб-сайте будет отображен адрес demo@site.ru со ссылкой mailto.

Адрес без ссылки

Если вы хотите просто вывести замаскированный адрес электронной почты, то используйте следующий код:

echo JHtmlEmail::cloak('demo@site.ru', false);

На веб-сайте будет отображен адрес demo@site.ru без ссылки mailto.

Адрес, отличный от адреса в ссылке

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

echo JHtmlEmail::cloak('demo@site.ru', true, 'test@site.ru');

На веб-сайте будет отображен адрес demo@site.ru, но ссылка mailto будет вести на адрес test@site.ru.

Фраза, залинкованная на адрес

И наконец, вы можете вывести фразу, которая будет залинкована на адрес электронной почты:

echo JHtmlEmail::cloak('demo@site.ru', true, 'Свяжитесь с нами', false);

На веб-сайте будет отображена фраза Свяжитесь с нами, при этом ссылка mailto будет вести на адрес demo@site.ru.

Удачной разработки!

резервное копирование сайта на яндекс диск

Комментарии  

Аркадий Седельников
0 # Аркадий Седельников 16.09.2014 18:29
Классная функция, я, к своему стыду, о ней даже и не знал :-)
Ответить | Ответить с цитатой | Цитировать | Сообщить модератору
Дмитрий Рекун
+2 # Дмитрий Рекун 17.09.2014 15:35
Цитирую Аркадий Седельников:
Классная функция, я, к своему стыду, о ней даже и не знал :-)

Joomla полна тайн ;)
Ответить | Ответить с цитатой | Цитировать | Сообщить модератору
Незнающий
0 # Незнающий 18.09.2014 15:23
Можете пояснить принцип, на котором основывается защита? Почему спам-бот не увидит такой e-mail?
Ответить | Ответить с цитатой | Цитировать | Сообщить модератору
Дмитрий Рекун
0 # Дмитрий Рекун 18.09.2014 18:15
Цитирую Незнающий:
Можете пояснить принцип, на котором основывается защита? Почему спам-бот не увидит такой e-mail?

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

Загляните в метод cloak, думаю, что станет понятней.
Ответить | Ответить с цитатой | Цитировать | Сообщить модератору
neon1ks
+2 # neon1ks 22.09.2014 12:09
В обычных статьях joomla сама защищает e-mail)
Спасибо за заметку)
Ответить | Ответить с цитатой | Цитировать | Сообщить модератору
татьяна
0 # татьяна 17.04.2015 20:38
как сделать чтобы вместо ссылки были слова. я ничего не поняла... можете человеческим языком объяснить, для особо одаренных. спасибо :roll:
Ответить | Ответить с цитатой | Цитировать | Сообщить модератору
Евгений
0 # Евгений 12.01.2016 14:16
Приветствую! Столько вариантов и все надежны?
Стоит оставлять ссылку mailto или лучше прятать ссылки для надежности?
У меня появилась задача преобразить немного гостевую книгу, где вместо простого вывода почты нужно спрятать её под кликабельной картинкой, под которой будет почтовый адрес. Для того чтобы было так как задумано, я писал такой код:
echo '';
С замаскированными функциями от Joomla никак не соображу... вроде надо бы как-то так сделать, но получаются на странице ошибки:
echo '';
...что-то тут не так, подскажите пожалуйста, как сделать правильно?
Исходный код выводил почту таким образом: echo JHTML::_( 'email.cloak', phocaguestbookHelperFront ::wordDelete($values->ema il, 50, '...') );
Ответить | Ответить с цитатой | Цитировать | Сообщить модератору
Евгений
0 # Евгений 12.01.2016 18:09
Даже коды не показать... в общем забудьте про мои вопросы...
Ответить | Ответить с цитатой | Цитировать | Сообщить модератору
Евгений
0 # Евгений 15.01.2016 17:29
У меня почему-то "JHtmlEmail::cloak" не работает... работает только этот вариант "JHtml::_"
Ответить | Ответить с цитатой | Цитировать | Сообщить модератору
Igor
0 # Igor 11.05.2017 19:55
А если просто подключить уже готовый Email Protector от NoNumber тут regularlabs.com/.../...
Причем есть бесплатная версия
Прокометриуейте пожалуйста
Ответить | Ответить с цитатой | Цитировать | Сообщить модератору

Добавить комментарий

Обновить
Защитный код

Joomla!® CMS — пожалуй, лучшая система управления контентом с открытым исходным кодом

Joomla! — это больше, чем просто программное обеспечение, это люди, включающие разработчиков, дизайнеров, системных администраторов, переводчиков, копирайтеров, и, что самое главное — простых пользователей.

Мы рады пригласить вас в ряды нашего сообщества!

Скачать Joomla! 3 Документация Joomla! CMS Свернуть

Расширения Joomla

Новости портала

Новое в блогах

Видео