DCaptcha
Здравствуйте, уважаемые посетители сайта okITgo.ru! Сегодня хочу рассказать о плагине DCaptcha как о методе борьбы со спамом в комментариях вашего блога. Устройство плагина до безобразия простое, но работает DCaptcha как будто бы вполне неплохо, успешно отфильтровывая спам.
Установка DCaptcha
Сначала, естественно, качаем плагин либо с сайта автора, либо прямо с моего сайта.
Извлекаем скачанный архив в папку “dimoning.ru-captcha”, содержимое которой:
- num\
- dimoning.ru-captcha.php
- install.php
Загружаем эту папку “dimoning.ru-captcha” в директорию WP с плагинами
wp-content/plugins/ |
В админке щелкаем меню “Плагины”, находим в списке плагин “DCaptcha” и нажимаем “Активировать” – прямо под названием плагина.
После этого открыв любую статью сайта (не залогиниваясь), в форме отправки отзыва (комментария) должен появиться дополнительный элемент:
Теперь несколько действий по установке, специфических для плагина DCaptcha.
Устанавливаем права доступа 777 для папки
wp-content/plugins/dimoning.ru-captcha/num/ |
Теперь открываем страницу
http://<АДРЕС ВАШЕГО САЙТА>/wp-content/plugins/dimoning.ru-captcha/install.php |
При этом откроется пустая страничка, но в папке
wp-content\plugins\dimoning.ru-captcha\num\ |
Проверка Работы DCaptcha
Окрываем какой-нибудь пост, при этом не залогиниваясь (например, используя другой браузер) и пишем тестовый комментарий, но галку в поле “Это не спам” не ставим. После попытки отправить комменатрий, должна открыться страница с таким содержанием:
wrong captcha. no spam, please. |
Затем смотрим в админке, что комментарий действительно не прошел. В противном случае (комментарий все-таки просочился), необходимо предпринять дополнительные действия (см. ниже Настройка Работоспособности DCaptcha в Версиях WP 2.9 и Выше).
Теперь пишем другой тестовый комментарий и на этот раз ставим галочку. Комментарий должен успешно отправиться и ожидать модерации. Если опять вылезло сообщение “wrong captcha…”, то плагин не работает должным образом. Это может быть связано с тем, что Вы тестируете плагин на локальном хосте под управлением ОС Windows, для которой пути разграничиваются обратной косой чертой.
В этом случае надо подправить код в файле
wp-content\plugins\dimoning.ru-captcha\dimoning.ru-captcha.php |
$file = str_replace (“dimoning.ru-captcha.php”, “”, __FILE__).”num/num.txt”; |
$file = str_replace (“dimoning.ru-captcha.php”, “”, __FILE__).”num\\num.txt”; |
После этого плагин должен заработать, но после переноса сайта на хостинг, надо изменения в файле dimoning.ru-captcha.php вернуть в исходное состояние, т.к. хостинг наверняка работает под управлением UNIX-подобной ОС, где пути разграничиваются прямой косой чертой.
Настройка Работоспособности DCaptcha в Версиях WP 2.9 и Выше
В случае, когда после попытки отправить комментарий, не ставя галку, он все-таки проходит, неработоспособность плагина DCaptcha скорее всего вызвана тем, что у Вас движок WordPress версии 2.9 или выше.
Чтобы вылечить эту проблему, открываем на редктирование файл
wp-content\plugins\dimoning.ru-captcha\dimoning.ru-captcha.php |
wp_set_comment_status ($id, ‘delete’); |
wp_set_comment_status ($id, ‘trash’); |
После этого при отправке комментария без галочки “Это не спам”, комментарий должен благополучно отправиться в корзину (проверяем в админке, кликнув меню “Комментарии”, справа щелкаем на ссылке “Корзина” и смотрим ее содержимое – комментарий должен быть там).
При желании можно сделать так, чтобы спам-комментарии, не прошедшие проверку DCaptcha, полностью удалялись, не попадая в корзину (и, соответственно, не записываясь в базу данных содержимого движка WordPress, на котором работает ваш сайт).
Для этого необходимо во-первых опять же внести изменения в файл
wp-content\plugins\dimoning.ru-captcha\dimoning.ru-captcha.php |
wp_set_comment_status ($id, ‘trash’); |
wp_set_comment_status ($id, ‘delete’); |
wp_delete_comment ($id); |
Теперь комментарии, не прошедшию проверку DCaptcha, также будут попадать в корзину. Но характер работы функции удаления комментария wp_delete_comment отличается от работы функции установки статуса комментария wp_set_comment_status. Если сейчас отключить корзину совсем, то комментарии, не прошедшие капчу, будут удаляться полностью, не попадая в корзину и базу данных WP. Таким образом, осталось выполнить второй шаг – отключить корзину WordPress.
Отключение Корзины WordPress
Открываем файл с константами движка по умолчанию
wp-includes\default-constants.php |
define(‘EMPTY_TRASH_DAYS’, 30); |
Вот и все: комментарии, отправленные без установленной галочки DCaptcha, будут сразу же удаляться, не засоряя базу данных вашего сайта.
Настройка Внешнего Вида DCaptcha
Поговорим о вопросах оформления.
1) Можно заменить подпись “Это не спам” на другую, например, “Я не робот”. Для этого открываем файл плагина
wp-content\plugins\dimoning.ru-captcha\dimoning.ru-captcha.php |
Это не спам.<br> |
Я не робот<br> |
2) Можно изменить стиль div-контейнера с id=”dcaptcha”, добавив в таблицу стилей
wp-content\themes\<НАЗВАНИЕ ВАШЕЙ ТЕМЫ>\style.css |
#dcaptcha { color:#ff0000; } |
3) Можно убрать подпись сделано dimoning.ru под чекбоксом DCaptha, содержащую ссылку на сайт автора плагина, для этого удаляем кусок кода
<sup><small>сделано <a href=’http://dimoning.ru/’>dimoning.ru</a></small></sup> |
4) Ну и наконец, думаю, стоит поменять оповещение
wrong captcha. no spam, please. |
Чтобы отправить комментарий, поставьте, пожалуйста, галочку “Это не спам”, чтобы подтвердить, что Вы не робот. |
echo “wrong captcha. no spam, please.”; |
echo <<< _ANTI_SPAM <html> <head> <meta http-equiv=”Content-Type” content=”text/html; charset=UTF-8″ /> <meta name=”robots” content=”noindex, nofollow”> <title>Анти-спам проверка не пройдена</title> </head> <body> <h1>Анти-спам проверка не пройдена</h1> <p>Чтобы отправить комментарий, поставьте, пожалуйста, галочку “Это не спам”, чтобы подтвердить, что Вы не робот.</p> </body> </html> _ANTI_SPAM; |
На этом, пожалуй, закончу описание плагина DCaptcha. Желаю Вам, какой бы метод борьбы со спамом в комментариях Вы не избрали, успешно претворить этот метод в жизнь. Спасибо за внимание! До новых встреч на страницах сайта okITgo.ru.
у меня ГАЛОЧКА вообще не отображается. Версия движка последняя