Очень часто на сайте приходится публиковать свой e-mail адрес. Однако, после этого автоматические сборщики e-mail адресов для будущих спам-баз гарантированно Ваш e-mail так же прихватят. Чтобы им это не удалось, люди стали пытаться сделать так, чтобы пользователи сайта видели e-mail , а роботы нет. Самый простой при...

Защита e-mail на сайте от спамеров

Очень часто на сайте приходится публиковать свой e-mail адрес. Однако, после этого автоматические сборщики e-mail адресов для будущих спам-баз гарантированно Ваш e-mail так же прихватят. Чтобы им это не удалось, люди стали пытаться сделать так, чтобы пользователи сайта видели e-mail, а роботы нет. Самый простой пример - поставить кнопку "Показать e-mail" и после её нажатия подгружать его с сервера. Способ отличный, но придётся немного помучаться с реализацией. В этой же статье я покажу более простой способ защитить свой e-mail на сайте от спамеров.

Главный смысл вывести e-mail в виде ASCII-символов. Таким образом, сейчас задача написать PHP-функцию, которая преобразует строку в набор этих символов:

<?php
  function protect($email) {
    $result = "";
    for ($i = 0; $i < strlen($email); $i++) $result .= "&#".ord(substr($email, $i, 1)).";";
    return $result;
  }
  echo protect("a@bc.ru"); // В нужном месте преобразуем и выводим e-mail
?>

Запустите скрипт и посмотрите на результат. Вы на странице увидите "a@bc.ru", однако, если Вы откроете исходный код, то увидите следующее: "&#97;&#64;&#98;&#99;&#46;&#114;&#117;". Именно это и увидят абсолютно все роботы. С подобным обычные сборщики e-mail адресов не справятся. А если начнут писать функции, которые будут преобразовывать ещё и все ASCII-символы обратно, то такой сборщик будет очень медленный. Отсюда вывод, что подобная защита e-mail на сайте от спамеров весьма эффективна.