Спам-робота (за краткост бот) посещава вашата страница. Вижда изходния код. Стига израз mailto:name@address.domain. Забира го за себе си и си отива. На свой ред мислим как да предотвратим тази неправда известна още като обфускация на e-mail адрес
Начин 1
Това е най-простия начин и той идва пръв на ум - представа на адрес, чрез графическо изображение. На нужно място, чрез html код слагаме картинка с надпис адреса. Веднага лъсват следните минуси. Пропада възможността да кликаме по линк на адреса, задействайки пощенския клиент на системата. Copy-paste също е натирен в немилост. При режим на браузъра изключени картинки вашият адрес става невидим, а указването му в атрибут alt е тъпо.Достойнство на този метод идва само от ползване на любим шрифт
Начин 2
Прибягна се до обявяване на e-mail адреса по екзотичен начин - name@address.domain става на name [at] address [dot] domain. Тук стандартния синтаксис се замени с нестандартен. За голяма група интернет-юзери това е откровена тъпня, а закачена на претендиращ сайт - два пъти повече такава.Начин 3
Тук наблюдаваме интересен случай. Обръщаме name@address.domain в niamod.sserdda@eman с помощта на PHP функция strrev(), а после прекарваме през свойствата на CSS (unicode-bidi и direction) и постигаме огледален образ на текста. Ботът е заблуден на практика, но доброжелателния потребител също. При Copy-Paste нещата остават обърнати отзад напред. Замисълът пропада.<?=strrev("name@address.domain") ?>
Начин 4
Продължаваме на вълна PHP. Това е култов език за мен. Базови знания в стил процедурно програмиране ни дават възможност да маскираме адреса си по следния начин.Друга възможност да скрием адреса се свежда до алтернативен синтаксис (мнемоники/entitles-символи), основан на кодиране на символите в вид &#ANSI_код_на_символа (numeric character reference). Браузърите умеят да четат подобен код напряко. Генерацията на подобен код ще доверим на PHP.
Два цикъла ще сравняват дължината на променливите в началото на скрипта. При всеки обход ще връщат html значение на символа върнат от функция ord(). Изходът ще се формира от конкатенация и voila. Имаме кодиран адрес. Ботът в случая ще вижда изходния код.
<?php $email = 'name@address.domain'; $url = 'name@address.domain'; $safe_email='';
$safe_url=''; for($i=0; $i<strlen($email); $i++){ $safe_email .= '&#'.ord($email{$i}).';'; } for($i=0; $i<strlen($url); $i++){ $safe_url .= '&#'.ord($url{$i}).';'; } echo "<a href='$safe_url'>$safe_email</a>";
Главен минус е, че ботовете станаха по-умни. Те се научиха да четат алтернативно представяне на адреса.
Начин 5
Всички пътеки водят в Рим. А умните казват, че надежен способ за обфускация на e-mail лежи на JavaScript. Засега ботовете са безсилни да интерпретират JavaScript код. Стига да не са заточени под определена страница.Мързеливият начин ме караше да прекарам HTML кода през този on-line енкодер.
Енкодерът спестява писане на код подобен в начин 4. Тук конкатенация върши подобен израз: $safe_email.='%'.dechex(ord($email{$i}));
Чета предположения, че някои антивирусни програми подозират сайта за атакуващ при подобен запис. Windows си е windows, там всичко пищи. От естетическа гледна точка през погледа на web-дизайнера, кодът изглежда изродски. Печели с бързина и простота на изпълнението. Колкото толкова.
Начин 6
Тук постигаме замисъла с jQuery. Това е начина чрез когото съм прикрил адреса в блога си (горно меню, бутон Контакт).<script type="text/javascript"> $(document).ready(function(){ var Con = document.getElementById('promail'); if(Con){ var Link = document.createElement('a'); var Parts = ['ma','ilto:na','me','@add','ress.domain']; Link.href = Parts[0]+Parts[1]+Parts[2]+Parts[3]+Parts[4]; var Mail = ['na','me','@add','ress.domain']; var aMail= Mail[0]+Mail[1]+Mail[2]+Mail[3]; var Text = document.createTextNode(aMail); Con.appendChild(Link); Link.appendChild(Text); } }); </script> <p>пишете на <span id="promail"></span></p>
С посочените примери не се изчерпва темата и те са по-скоро авторска практика.
до нови срещи ^.^
Това е много ценно :)
Не засегнах начина на обявяване с флаш, но там съм много на Вие. jQuery ми е слабост и последния начин е заявена гордост на умения. Очаквай още ценни пинизи, само време не стига.
А едно време се оплаквах, че в пощата ми нямам нито едно спам писмо XD