PHPackages                             bkhouy/captcha - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Validation &amp; Sanitization](/categories/validation)
4. /
5. bkhouy/captcha

ActiveDrupal-module[Validation &amp; Sanitization](/categories/validation)

bkhouy/captcha
==============

The CAPTCHA module provides this feature to virtually any user facing web form on a Drupal site.

2.0.0(2y ago)0511GPL-2.0-or-laterPHP

Since Jul 16Pushed 2y ago1 watchersCompare

[ Source](https://github.com/BrahimKHY/captcha)[ Packagist](https://packagist.org/packages/bkhouy/captcha)[ Docs](https://www.drupal.org/project/captcha)[ RSS](/packages/bkhouy-captcha/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependenciesVersions (2)Used By (1)

CAPTCHA
=======

[](#captcha)

Important
---------

[](#important)

This is a temporarily fix of upgrading captcha module from Drupal 9 to Drupal 10, see the issue detail on:

### Upgrading steps:

[](#upgrading-steps)

1 - Remove existing drupal/captcha package: `composer remove drupal/captcha`

2 - Require bkhouy/captcha package: `composer require bkhouy/captcha:^2.0`

3 - Continue upgrading the rest of your project...

4 - Once you finish the upgrade and your project is running on Drupal 10 version on production, then you need to rollback to drupal/captcha module by following those steps:

- Remove bkhouy/captcha package: `composer remove bkhouy/captcha`
- Require drupal/captcha package: `composer require drupal/captcha:^2.0`

Description
-----------

[](#description)

A CAPTCHA is a challenge-response test most often placed within web forms to determine whether the user is human. The purpose of CAPTCHA is to block form submissions by spambots, which are automated scripts that post spam content everywhere they can. The CAPTCHA module provides this feature to virtually any user facing web form on a Drupal site.

For a full description of the module, visit the [project page](https://www.drupal.org/project/captcha)

Submit bug reports and feature suggestions, or track changes in the [issue queue](https://www.drupal.org/project/issues/captcha)

Table of contents
-----------------

[](#table-of-contents)

- Requirements
- Conflicts/Known issues
- Installation
- Configuration
- Development
- Maintainers

Requirements
------------

[](#requirements)

This module requires no modules outside of Drupal core.

Conflicts/Known issues
----------------------

[](#conflictsknown-issues)

CAPTCHA and page caching do not work together currently. However, the CAPTCHA module does support the Drupal core page caching mechanism: it just disables the caching of the pages where it has to put its challenges.

If you use other caching mechanisms, it is possible that CAPTCHA's won't work, and you get error messages like 'CAPTCHA validation error: unknown CAPTCHA session ID'.

Installation
------------

[](#installation)

Install as you would normally install a contributed Drupal module. For further information, see [Installing Drupal Modules](https://www.drupal.org/docs/extending-drupal/installing-drupal-modules).

Configuration
-------------

[](#configuration)

The configuration page is at `admin/config/people/captcha`, where you can configure the CAPTCHA module and enable challenges for the desired forms. You can also tweak the image CAPTCHA to your liking.

1. Navigate to Administration &gt; Extend and enable the module.
2. Navigate to Administration &gt; Configuration &gt; People &gt; Captcha module settings to administer how and when Captcha is used.
3. Select the challenge type you want for each of the listed forms.
4. Select "Add a description to the CAPTCHA" to add a configurable description to explain the purpose of the CAPTCHA to the visitor.
5. For Default CAPTCHA validation, define how the response should be processed by default. Note that the modules that provide the actual challenges can override or ignore this.
6. Save configuration.

Development
-----------

[](#development)

You can disable captcha in your local or test environment by adding the following line to `settings.php`:

```
$settings['disable_captcha'] = TRUE;

```

Maintainers
-----------

[](#maintainers)

- Fabiano Sant'Ana - [wundo](https://www.drupal.org/u/wundo)
- Julian Pustkuchen - [Anybody](https://www.drupal.org/u/Anybody)
- Jakob Perry - [japerry](https://www.drupal.org/u/japerry)
- Rob Loach - [RobLoach](https://www.drupal.org/u/RobLoach)
- soxofaan - [soxofaan](https://www.drupal.org/u/soxofaan)
- Joshua Sedler - [Grevil](https://www.drupal.org/u/Grevil)
- Thomas Frobieter - [thomas.frobieter](https://www.drupal.org/u/thomas.frobieter)
- Lachlan Ennis - [elachlan](https://www.drupal.org/u/elachlan)
- Naveen Valecha - [naveenvalecha](https://www.drupal.org/u/naveenvalecha)
- Andrii Podanenko - [podarok](https://www.drupal.org/u/podarok)

Supporting organizations:

- Chuva Inc. - [Chuva Inc](https://www.drupal.org/chuva-inc)
- webks GmbH - [DROWL.de](https://www.DROWL.de)

###  Health Score

22

—

LowBetter than 22% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity8

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity43

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

1036d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/835c547f46226008df4da33f445bdf4ac10f2a3761de12b55e6a305eb6f22d9b?d=identicon)[BrahimKHY](/maintainers/BrahimKHY)

---

Top Contributors

[![BrahimKHY](https://avatars.githubusercontent.com/u/33271416?v=4)](https://github.com/BrahimKHY "BrahimKHY (4 commits)")

### Embed Badge

![Health badge](/badges/bkhouy-captcha/health.svg)

```
[![Health](https://phpackages.com/badges/bkhouy-captcha/health.svg)](https://phpackages.com/packages/bkhouy-captcha)
```

###  Alternatives

[webmozart/assert

Assertions to validate method input/output with nice error messages.

7.6k894.0M1.2k](/packages/webmozart-assert)[bensampo/laravel-enum

Simple, extensible and powerful enumeration implementation for Laravel.

2.0k15.9M104](/packages/bensampo-laravel-enum)[swaggest/json-schema

High definition PHP structures with JSON-schema based validation

48612.5M73](/packages/swaggest-json-schema)[stevebauman/purify

An HTML Purifier / Sanitizer for Laravel

5325.6M19](/packages/stevebauman-purify)[ashallendesign/laravel-config-validator

A package for validating your Laravel app's config.

217905.3k5](/packages/ashallendesign-laravel-config-validator)[crazybooot/base64-validation

Laravel validators for base64 encoded files

1341.9M8](/packages/crazybooot-base64-validation)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
