Источник: http://spectator.ru/
…и снова о спаме. Кто о нем только не писал, и все
писали, что это плохо и
Однако есть как минимум два способа, как при написании гостевых книг (или форумов) сделать защиту от спамеров. Первый — это не публиковать email вообще, а вместо его ставить ссылку на страницу с формой, с помощью которой желающий, не зная адреса, сможет отправить письмо соответствующему человеку. С одной стороны — удобно. Так сделано, например, на webscript.ru. С другой — не совсем, потому что многие предпочитают не пользоваться формами, а отправить письмо через любимый bat! Да и вообще, неизвестно еще куда отправит ваше письмо данная форма. Шучу, конечно, но недостатки этого метода, как и достоинства, очевидны.
«Но есть способ лучше!». Не абсолютно лучше, но в некоторых
случаях явно лучше. Заключается он в том, чтобы публиковать ссылки на
email адреса вот в таком виде:
click
here. Желающие могут кликнуть и посмотреть, что это работает.
Программы, «выдирающие» адреса, ничего на найдут.
Кликнули? Работает?
А теперь — как. Первая часть скрипта, которая заменяет в тексте адреса на такие ссылки простая, даже нет смысла ее приводить. Если что — то у меня в отзывах стоит примерно следующее:
$nospam= str_replace (’@’,’[dog]’,$mail);echo (’<a href=nospam.php3?’.$nospam.’>’);
Вторая часть — это, собственно, скрипт nospam.php3. Состоит он ровно из двух строк:
<php
$url = str_replace
(’[dog]’,’@’,urldecode($QUERY_STRING));
header(’Location:
mailto:$url’);
?>
Меняем [dog] на @ обратно и шлем в хедере mailto: и адрес.
При этом ничего в браузер не грузится и текущая страница остается нетронутой. (Правда, мне тут уже сообщили, что в IE 5.5 это не так…).
Вот, собственно, и все. Осложним жизнь спамерам. Вместо [dog] можно использовать все, что угодно, на что хватит вашего воображения.
З.Ы. : о баге в IE 5.5. Он при клике на эту ссылку открывает
пустое окно. Почтовая программа, правда, тоже запускается, но
Давайте посмотрим… А теперь эта ссылка в IE 5.5 —
работает? Click here.
Да?
Сделано — просто. Но все равно через… Вставляем
<iframe src="«
frameborder=0 vspace=0 hspace=0 width=1 height=1 scrolling=no
name=»mail"></iframe>
Ту часть, которая выводит ссылки, пишем примерно вот так:
$nospam= str_replace (’@’,’[dog]’,$mail);
echo (’<a
href=nospam.php3?’.$nospam);
if (eregi («MSIE 5», $HTTP_USER_AGENT))
{echo (’ target=mail’); }
echo (’>’);
Для того, чтобы если у человека IE 5 и выше — ссылки шли в этот пустой iframe…
Вроде работает… Только вот такой простое решение превратилось
в