amiralishabani/aash-captcha

Self-hosted, audio-capable CAPTCHA for PHP with no external dependencies.

Installs: 1

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 0

Forks: 0

Open Issues: 0

pkg:composer/amiralishabani/aash-captcha

v1.0.0 2025-07-21 17:28 UTC

This package is auto-updated.

Last update: 2025-12-21 21:30:51 UTC


README

A lightweight, customizable and PHP-native CAPTCHA system without any external dependencies.
Supports image and audio CAPTCHAs. Ideal for Laravel, Symfony, or pure PHP projects.

AASH Captcha Screenshot

🔧 Installation

Install the package via Composer:

composer require amiralishabani/aash-captcha

Or manually add it to your composer.json:

"require": {
  "amiralishabani/aash-captcha": "^1.0"
}

Then run:

composer update

🚀 Quick Start

1. Include the Captcha Generator

require_once 'vendor/autoload.php';

use AashCaptcha\Captcha;

$captcha = new Captcha();
$captcha->generate();

2. Show the Captcha

In your HTML:

<form method="POST" action="verify.php">
  <img src="captcha/image.php" alt="CAPTCHA" />
  <input type="text" name="captcha" placeholder="Enter the code">
  <button type="submit">Submit</button>
</form>

To generate audio CAPTCHA:

<audio controls>
  <source src="captcha/audio.php" type="audio/mpeg">
</audio>

✅ Validation

In your form handler (verify.php):

session_start();

if ($_POST['captcha'] === $_SESSION['aash_captcha']) {
    echo "✔ Correct!";
} else {
    echo "❌ Incorrect, try again.";
}

🎨 Customization

You can override the styles by editing the included assets/style.css.
All CSS classes and IDs are prefixed with aash_ to prevent conflicts.

/* Example customization */
#aash_container {
    background-color: #f7f7f7;
    border-radius: 10px;
    padding: 20px;
}

You may also customize font, colors, length of the captcha code, etc., in config.php.

📁 Folder Structure

aash-captcha/
├── src/
│   └── Captcha.php
├── public/
│   ├── image.php
│   ├── audio.php
│   └── assets/
│       ├── style.css
│       └── fonts/
├── config.php
├── composer.json
├── README.md

🔄 Auto-update in Packagist

You can setup GitHub Actions or Webhook to automatically update the package on Packagist after each push.

Read more here:
👉 https://packagist.org/about#how-to-update-packages

📃 License

MIT License

🙌 Author

Made with ❤️ by Amirali Shabani