jdz/jdzcaptcha
PHP — Composer
PHP server library. Issues challenges, validates answers and renders the challenge PNG. Ships the pre-built frontend assets in assets/.
Icon-based CAPTCHA for PHP and JavaScript
Users select the least-displayed icon in a randomised grid. No distorted text, no third-party service.
JdzCaptcha is split across three repositories, each with a distinct role.
PHP — Composer
PHP server library. Issues challenges, validates answers and renders the challenge PNG. Ships the pre-built frontend assets in assets/.
Frontend sources — Git
JavaScript, LESS and icon sources. Built with jizy-packer.
npm package
Published build of the frontend assets — npm install jdzcaptcha. Mirrors what ships in the PHP library, for projects that prefer an npm-based asset pipeline.
A minimal integration in four steps. Advanced usage (custom assets, translations, configuration) will be documented later.
composer require joffreydemetz/jdzcaptcha — icons ship inside the package under assets/.
Pull the built JS + CSS from the jizy-captcha Git repository.
<link rel="stylesheet" href="/css/jdzcaptcha.min.css">
<script src="/js/jdzcaptcha.min.js"></script>
<div class="jdzc" data-series="streamline" data-theme="light"></div>
<script>JdzCaptcha.initialize('/captcha/load/', '.jdzc');</script>
Your backend must answer POST /captcha/load/ (JS config), GET & POST /captcha/request/ (challenge image + AJAX) and POST /validate/ (form submission).
Inspired by
IconCaptcha-PHP
3.x.
Drawings by
Laurence Caveriviere.