Описание
Плагин «Really Simple CAPTCHA» не работает сам по себе, и предназначен для работы с другими плагинами. Изначально он был создан для Contact Form 7, но вы можете использовать в своих плагинах.
Примечание: Плагин действительно «really simple», название не обманывает, а значит он не обеспечивает серьезной защиты. Если она вам нужна, вам нужно попробовать другие варианты.
Как это работает?
Really Simple CAPTCHA не использует PHP сессии для хранения данных, в отличии от многих других решений, используются временные файлы. Это позволяет плагину избежать конфликтов.
Когда вы генерируете CAPTCHA, плагин «Really Simple CAPTCHA» создает два файла. Первый – это изображение для CAPTCHA, а второй – текстовый файл с правильными ответами.
Два файла имеют одинаковые (но случайные) имена, например «a7hk3ux8p.png» и «a7hk3ux8p.txt». Если респондент отвечает «K5GF» на вопрос с картинки «a7hk3ux8p.png», плагин «Really Simple CAPTCHA» высчитывает хеш для «K5GF» и сверяет его с эталонным хешем в файле «a7hk3ux8p.txt». Если есть совпадение, то ответ респондента признается правильным.
Как использовать с вашим плагином
Примечание: Ниже приведены инструкции для разработчиков плагинов.
Во-первых, создайте экземпляр класса ReallySimpleCaptcha:
$captcha_instance = new ReallySimpleCaptcha();
Вы можете изменить переменные экземпляра по своему желанию.
// Change the background color of CAPTCHA image to black
$captcha_instance->bg = array( 0, 0, 0 );
Изучите really-simple-captcha.php, если вам интересны другие переменные.
Создание случайного слова для CAPTCHA.
$word = $captcha_instance->generate_random_word();
Создайте файл изображения и соответствующий текстовый файл во временном каталоге.
$prefix = wp_rand();
$captcha_instance->generate_image( $prefix, $word );
Затем покажите изображение и получите ответ от респондента.
Проверьте правильность ответа.
$correct = $captcha_instance->check( $prefix, $the_answer_from_respondent );
Если $correct возвращает true, продолжайте. В противном случае, блокируйте респондента – кажется это не человек.
И последнее, удалите временное изображение и текстовые файлы, так как они больше не используются.
$captcha_instance->remove( $prefix );
Это все.
Если вы хотите посмотреть живое демо работы плагина, зайдите на страницу плагина Contact Form 7.
Скриншоты
Установка
В большинстве случаев, вы можете установить плагин прямо из WordPress.
В любом случае, если вы устанавливаете плагин вручную, просто следуйте этой инструкции:
- Загрузите весь каталог
really-simple-captcha
в каталог/wp-content/plugins/
. - Активируйте плагин на странице «Плагины» в панели управления WordPress.
Для справки: У этого плагина нет страницы в «панели управления».
Часто задаваемые вопросы
-
CAPTCHA не работает; изображение не показывается.
-
Для работы Really Simple CAPTCHA необходимо установить библиотеки GD и FreeType. Попросите сделать это у своего системного администратора или у технической поддержки вашего хостинга.
Также установите права доступа для временного каталога, которых хватит для записи. Месторасположением временного каталога вы можете управлять с помощью переменной
tmp_dir
в классе ReallySimpleCaptcha. Обратите внимание, что настройка зависит от вызывающего плагина. Например, Contact Form 7 используетwp-contents/uploads/wpcf7_captcha
как временный каталог, но может использовать и другую – в зависимости от ваших настроек.Если у вас появились вопросы, задайте их на форуме технической поддержки.
Отзывы
Участники и разработчики
«Really Simple CAPTCHA» — проект с открытым исходным кодом. В развитие плагина внесли свой вклад следующие участники:
Участники«Really Simple CAPTCHA» переведён на 40 языков. Благодарим переводчиков за их работу.
Перевести «Really Simple CAPTCHA» на ваш язык.
Заинтересованы в разработке?
Посмотрите код, проверьте SVN репозиторий, или подпишитесь на журнал разработки по RSS.
Журнал изменений
2.3
- Bumps up the minimum required WordPress version to 6.4.
2.2
- Bumps up the minimum required WordPress version to 6.1.
- Bumps up the minimum required PHP version to 7.4.
- Replaces
ReallySimpleCaptcha::normalize_path()
withwp_normalize_path()
. - Updates Apache directives.