Really Simple CAPTCHA
Плагин «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.