спам


99% защита от спама в комментариях

Нашел интересный способ защиты комментариев от спама. Почему99% ? Потому, что во всем быть уверенным нельзя. И если Вам пишут 100% защита от спама, то Вас обманывают:) В первое время (где-то от дня до нескольких недель) не будет спама, Вы будете радоваться. НО на каждое действие есть противодействие.

Эта система мне понравилась больше других, по крайней мере спама нет пока и все делается ручками, без плагинов, поэтому для мощного усиления можете добавить еще и плагин)) И конечно же я поделюсь ею с Вами;)

Результат можно увидеть на моем блоге. В стандартных комментариях появилось новое поле ввода: повторно ввести свой логин.

Думаю смысл понятен: вводим свой логин еще раз, сравниваем результаты, если совпадают публикуем комментарий, нет – не пускаем))

Пройдем в редактор и найдем файл comments.php В удобное для Вас место ставим следующий код (если пишем на русском, предварительно измените кодировку файла на utf-8 без BOM!):

<td class="commform-spam">

<p>Повторите свой логин <span>от спама</span>:</p>

<input type="text" name="spam" id="spam" value="<?php echo $comment_author_spam; ?>" tabindex="4" />

</td>

Это новое поле для ввода. Можно например заменить поле ввода сайта. Созданный класс  commform-spam, позволит управлять полем через css.

Скачиваем с хостинга для изменения файл wp-comments-post.php в корневой директории сайта/блога. Вставляем код:

$comment_author_spam = ( isset($_POST['spam']) ) ? trim($_POST['spam']) : null;

После:

$comment_author       = ( isset($_POST['author']) )  ? trim(strip_tags($_POST['author'])) : null;

$comment_author_email = ( isset($_POST['email']) )   ? trim($_POST['email']) : null;

$comment_author_url   = ( isset($_POST['url']) )     ? trim($_POST['url']) : null;

$comment_content      = ( isset($_POST['comment']) ) ? trim($_POST['comment']) : null;

Мы проверили наличие существовании данной переменной. И поместили ее в $comment_author_spam.

Теперь ищем (у меня 85 строка)

if ( '' == $comment_content )

wp_die( __('Error: please type a comment.') );

и вставляем (если пишем на русском, предварительно измените кодировку файла на utf-8 без BOM!)

if ( '' == $comment_author_spam )

wp_die( __('Дополнительное поле не заполнено: введите логин повторно!') );

if ( $comment_author != $comment_author_spam )

wp_die( __('Спамерам вход запрещен) );

Проверяем: если пустое поле –> выводим сообщение  Дополнительное поле не заполнено: введите логин повторно!

Если переменная $comment_author – логин – не совпадает с  $comment_author_spam (новое поле, которое мы добавили)  -> выводим сообщение Спамерам вход запрещен.

Все:) Радуйтесь жизни без спама!

Спросите работает или нет? К концу июля в день до 15 спам сообщений  было зафиксировано Akismet’ ом. Видимо были найдены проходы ботами, появлялись одни и те же сообщения с множеством ссылок. Честно сейчас уже не помню когда были спам сообщения последний раз.

Вот для примера статистика спама от Akismet. (на 20 июля)spam

Переменная $comment_author_spam была взята просто для примера. Можно использовать любую другую переменную.

с/у УтБ

Видели когда нибудь летающих акул? Нет? Тогда смотрим)