Нашел интересный способ защиты комментариев от спама. Почему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 июля)
Переменная $comment_author_spam была взята просто для примера. Можно использовать любую другую переменную.
с/у УтБ
Видели когда нибудь летающих акул? Нет? Тогда смотрим)
что-то я не увидел этого поля с повторным вводом логина…
Способ хороший. Сам давно пришел к выводу что лучшая защита, это собственная.
Я на одном своем форуме что только не делал, не одна капча не помогала, боты это все уже давно научились обзодить. Пока сам в код парочку изменений не внес и не добавил дополнительный check box.
Сейчас только ручные регистрации.
не так уж и сложно просто делай пошагово) а про акулу прикольно) ток почему-то у меня на сайте не вышло поэтому я онлайн глянул
Ага, я заметил, хорошо придумано :=) Ещё хороший результат даёт, когда флажок нужно поставить или снять, и подсчитать сумму. Последний у меня на блоге стоит.
@Тима буквально минут 5 и все. Хорошая защита + поставить плагин как akkad и все 100%
@akkad Да мне тож понравилось, аж поставил на блог))
Как то сложно все это устанавливать