Создание сайта — защищаем контакты от спама

При вёрстке сайта возникает необходимость добавления email адресов, icq и другой контактной информации. Этим пользоваться будут не только посетители, но и спаммеры, наполняя спам–базы с помощью автоматических программ сбора такой информации. А кому понравится спам в его личном ящике? Или постоянные предложения купить/продать/посетить по icq?
Мы рассмотрим метод, который поможет предотвратить кражу Ваших контактов автоматическими средствами с целью спама, и при этом предоставим контактный блок таким, какой он есть, на обозрение простым посетителям. В этом нам поможет javascript:
Итак. Воспользуемся помощью двух javascript функций:
- string.charCodeAt – возвращает код символа по номеру символа в строке.
- String.fromCharCode – возвращает строку, закодированную в виде номеров символов.
Напишем небольшой скрипт, который поможет нам закодировать наш контактный блок от спаммеров:
<script type="text/javascript"> var lt = '<p id="contacts-email"><a href="mailto:ваш емейл адрес@ваш сайт"" title="Напишите нам письмо">ваш емейл адрес@ваш сайт</a></p><p id="contacts-icq">ICQ: ваш icq</p>'; var l = lt.length; var ns = ''; for(var i=0; i < l; i++){ ns += (ns !== '' ? ',' : '') + lt.charCodeAt(i); } st = 'String.fromCharCode('+ns+')'; document.write('<script'+' type="te'+'xt/javascript"'+'>'+ "\n" + ' document.write' + '(' + st+')' + '; ' + "\n" +'</script'+'>'); </script>
В переменную lt аккуратно помещаем нужные нам данные.
Примечание: обратите внимание, чтобы кодировка в браузере во время выполнения скрипта совпадала с кодировкой на Вашем сайте, где Вы будете использовать результат.
Запускаем страничку в браузере и получаем кодированный js контактного блока. Который совершенно обычно выглядит в браузере посетителя, а в коде страницы отображается как:
<script type="text/javascript"> document.write(String.fromCharCode(60,112,32,105,100,61,34,99,111,110,116,97,99,116,115,45,101,109,97,105,108,34,62,60,97,32,104,114,101,102,61,34,109,97,105,108,116,111,58,1074,1072,1096,32,1077,1084,1077,1081,1083,32,1072,1076,1088,1077,1089,64,1074,1072,1096,32,1089,1072,1081,1090,34,32,116,105,116,108,101,61,34,1053,1072,1087,1080,1096,1080,1090,1077,32,1085,1072,1084,32,1087,1080,1089,1100,1084,1086,34,62,1074,1072,1096,32,1077,1084,1077,1081,1083,32,1072,1076,1088,1077,1089,64,1074,1072,1096,32,1089,1072,1081,1090,60,47,97,62,60,47,112,62,60,112,32,105,100,61,34,99,111,110,116,97,99,116,115,45,105,99,113,34,62,73,67,81,58,32,1074,1072,1096,32,105,99,113,60,47,112,62)); </script>
Вставляем на место Вашего контактного блока в HTML и сохраняем. А вот готовый пример, где Вы можете ввести часть Вашего контактного блока (например емейл) и получить его кодированный эквивалент, готовый ко вставке на страницу в кодировке UTF-8: