https://github.com/fabianwennink/iconcaptcha-php
A self-hosted, customizable, easy-to-implement and user-friendly captcha for PHP.
https://github.com/fabianwennink/iconcaptcha-php
anti-bot bots captcha captcha-alternative captcha-generator captcha-image form-validation gdpr-compliant icon-captcha iconcaptcha javascript-captcha jquery-captcha php-captcha security user-friendly
Last synced: about 2 months ago
JSON representation
A self-hosted, customizable, easy-to-implement and user-friendly captcha for PHP.
- Host: GitHub
- URL: https://github.com/fabianwennink/iconcaptcha-php
- Owner: fabianwennink
- License: mit
- Created: 2017-06-18T17:22:34.000Z (about 8 years ago)
- Default Branch: master
- Last Pushed: 2025-03-22T13:09:56.000Z (3 months ago)
- Last Synced: 2025-05-09T22:48:36.593Z (about 2 months ago)
- Topics: anti-bot, bots, captcha, captcha-alternative, captcha-generator, captcha-image, form-validation, gdpr-compliant, icon-captcha, iconcaptcha, javascript-captcha, jquery-captcha, php-captcha, security, user-friendly
- Language: PHP
- Homepage: https://www.fabianwennink.nl/projects/IconCaptcha/
- Size: 1.35 MB
- Stars: 161
- Watchers: 5
- Forks: 30
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Funding: .github/FUNDING.yml
- License: LICENSE
- Security: .github/SECURITY.md
Awesome Lists containing this project
README
![]()
A self-hosted, customizable, easy-to-implement and user-friendly captcha.___
Introducing IconCaptcha, a self-hosted captcha solution that's designed to be fast, user-friendly, and highly customizable. Unlike other captchas, IconCaptcha spares users the need of deciphering hard-to-read text images, solving complex math problems, or engaging with perplexing puzzle games. Instead, with IconCaptcha it's as straightforward as comparing up to 8 icons and selecting the least common one.
IconCaptcha doesn't just prioritize users; it's also developer-friendly. In just a few steps, you can have IconCaptcha integrated into your website. Even if you're new to PHP and JavaScript, installing IconCaptcha is a straightforward process. The included demo pages in this repository provide all the necessary code to get IconCaptcha up and running. For more in-depth insights, take a moment to explore the information provided on this page and the wiki.
___
### [▶ Try the live demo here!](https://www.fabianwennink.nl/projects/IconCaptcha/#!demonstration)
**[Using ASP.NET instead? Try IconCaptcha for ASP.NET](https://github.com/fabianwennink/IconCaptcha-ASP.NET)** _(not currently maintained - will continue in Q4 of 2023)_
___## Installation
### Composer
```bash
composer require fabianwennink/iconcaptcha
```
Once the package has been installed, continue with the remaining [installation instructions](https://github.com/fabianwennink/IconCaptcha-PHP/wiki/Getting-Started#installation), followed by the [setup instructions](https://github.com/fabianwennink/IconCaptcha-PHP/wiki/Implementation).### Manual Installation
It is recommended to use Composer. However, if you are unable to, follow the [manual installation instructions](https://github.com/fabianwennink/IconCaptcha-PHP/wiki/Getting-Started#manual-installation) and [setup instructions](https://github.com/fabianwennink/IconCaptcha-PHP/wiki/Implementation).## Features
* 🏠 __Self-Hosted:__ As a self-hosted solution, IconCaptcha eliminates reliance on third-party services, keeping things under your control.
* 🚫 __No Data Sharing:__ Unlike other captchas, IconCaptcha's self-hosted nature ensures no user data is shared with third parties.
* 🔐 __Server-Side Validation:__ All validation is carried out server-side, boosting security by eliminating exposure of sensitive processes on the client side.
* 😊 __User-Friendly:__ Replace complex captchas for easily understandable images, delivering a smoother experience for your users.
* 💾 __Database Support:__ Store and manage challenge data using various popular databases like MySQL, SQL Server, PostgreSQL, and SQLite.
* 🌐 __Cross-Domain Integration:__ With CORS support, IconCaptcha effortlessly integrates into applications spanning different domains.
* 🎣 __Events and Hooks:__ Events are triggered throughout the code, allowing you to inject custom code and fine-tune the experience to your needs.
* 🎨 __Contemporary Design:__ IconCaptcha's modern design seamlessly integrates with a diverse range of styles.
* 🖌️ __Themes:__ Choose from existing themes, or craft your own unique theme using the provided SASS file.
* 🔌 __jQuery Integration:__ While written in plain JavaScript, IconCaptcha smoothly integrates with jQuery.## What's New in IconCaptcha 4
Version 4 of IconCaptcha introduces significant enhancements to the architecture and feature set, and offers greater flexibility and customization, alongside improved security. Here are the key updates in this release:* 📦 **Composer Compatibility:** IconCaptcha is now available on Packagist and can be installed using Composer.
* 🏗️ **Restructured Code Base:** The entire code base has been restructured, moving away from the previous one-file-does-everything approach. This restructuring makes it easier to maintain the code in the future.
* 📃 **Improved Configuration:** IconCaptcha 4 introduces a more comprehensive and polished configuration file, offering more options for customization alongside clearer descriptions for each choice.
* 💾 **Database Support:** A notable addition to this version is the inclusion of database support. Challenge data can now be stored using well-known databases like MySQL, SQL Server, PostgreSQL, and SQLite.
* 🧩 **Custom Drivers:** Want to handle certain server-side aspects your own way? IconCaptcha 4 allows you to implement custom drivers for critical features such as session management, storage, and timeout handling.
* 🎣 **Server-side Hooks:** Hook into server-side events like captcha initialization, challenge generation, and solution processing to customize the processes according to your application's needs.
* 🌐 **CORS Support:** Cross-Origin Resource Sharing (CORS) support is now available, allowing IconCaptcha to be integrated into applications spread across different domains while maintaining security standards.# Wiki
For instructions on installing, setting up, and configuring IconCaptcha, be sure to explore the Wiki pages:* [Requirements](https://github.com/fabianwennink/IconCaptcha-PHP/wiki/Getting-Started#requirements) - A list of requirements to get IconCaptcha working properly.
* [Installation](https://github.com/fabianwennink/IconCaptcha-PHP/wiki/Getting-Started#installation) - Instructions on how to install/download IconCaptcha.
* [Implementing](https://github.com/fabianwennink/IconCaptcha-PHP/wiki/Implementation) - Step-by-step instructions on how to implement IconCaptcha.
* [Configuration](https://github.com/fabianwennink/IconCaptcha-PHP/wiki/Configuration) - Explanation of all available configuration options.
* [Storage](https://github.com/fabianwennink/IconCaptcha-PHP/wiki/Storage) - Details about all storage options.
* [Challenge Generator](https://github.com/fabianwennink/IconCaptcha-PHP/wiki/Challenge-Generator) - Information about how to implement a custom challenge generator.
* [Validation](https://github.com/fabianwennink/IconCaptcha-PHP/wiki/Validation) - Explanation of the validation process and error handling.
* [Hooks & Events](https://github.com/fabianwennink/IconCaptcha-PHP/wiki/Hooks-&-Events) - Overview of events which are triggered at different stages in the captcha process.
* [Token](https://github.com/fabianwennink/IconCaptcha-PHP/wiki/Token) - Information about the usage of the optional widget security token.
* [Themes](https://github.com/fabianwennink/IconCaptcha-PHP/wiki/Themes) - Details on creating and setting up custom themes.
* [Localization](https://github.com/fabianwennink/IconCaptcha-PHP/wiki/Localization) - Details on how to customize the localization strings.## Credits
The icons used in this project are made by [BlendIcons](https://blendicons.com/).## License
This project is licensed under the [MIT](https://www.fabianwennink.nl/projects/IconCaptcha/license) license.