<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta name="description" content="The complete guide to PHP CAPTCHA in 2026. Compare Securimage, Cloudflare Turnstile, hCaptcha and reCAPTCHA to find the right solution for your project.">
  <link rel="canonical" href="https://phpcaptcha.org/">
  <!-- Open Graph -->
  <meta property="og:title" content="PHP CAPTCHA Guide - Securimage &amp; Modern Alternatives (2026)">
  <meta property="og:description" content="The complete guide to PHP CAPTCHA in 2026. Compare Securimage, Cloudflare Turnstile, hCaptcha and reCAPTCHA to find the right solution for your project.">
  <meta property="og:url" content="https://phpcaptcha.org/">
  <meta property="og:type" content="article">
  <meta property="og:site_name" content="phpcaptcha.org">
  <meta property="og:image" content="https://phpcaptcha.org/static/images/hero.webp">
  <!-- Twitter Card -->
  <meta name="twitter:card" content="summary">
  <meta name="twitter:title" content="PHP CAPTCHA Guide - Securimage &amp; Modern Alternatives (2026)">
  <meta name="twitter:description" content="The complete guide to PHP CAPTCHA in 2026. Compare Securimage, Cloudflare Turnstile, hCaptcha and reCAPTCHA to find the right solution for your project.">
  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/themes/prism.min.css">
  <link rel="stylesheet" href="/static/css/main.css">
  <title>PHP CAPTCHA Guide - Securimage &amp; Modern Alternatives (2026)</title>
  <script type="application/ld+json">
  {
    "@context": "https://schema.org",
    "@type": "WebSite",
    "name": "phpcaptcha.org",
    "url": "https://phpcaptcha.org",
    "description": "The PHP CAPTCHA library and developer reference. Securimage docs, CAPTCHA comparisons, PHP security guides."
  }
  </script>
  
</head>
<body class="page-homepage">

<nav class="site-nav">
  <div class="nav-inner">
    <a href="/" class="nav-logo">phpcaptcha.org</a>
    <button class="nav-hamburger" aria-label="Menu">&#9776;</button>
    <ul class="nav-links">
      <li class="has-dropdown">
        <a href="/documentation">Documentation</a>
        <ul class="dropdown">
          <li><a href="/documentation/quickstart-guide">Quickstart Guide</a></li>
          <li><a href="/download">Download</a></li>
          <li><a href="/documentation/customizing-securimage">Customizing Securimage</a></li>
          <li><a href="/securimage-ajax">Securimage + AJAX</a></li>
          <li><a href="/faq">FAQ</a></li>
          <li><a href="/try-securimage">Try PHP CAPTCHAs</a></li>
        </ul>
      </li>
      <li class="has-dropdown">
        <a href="/captcha-alternatives">Reviews &amp; Guides</a>
        <ul class="dropdown">
          <li><a href="/captcha-alternatives">All CAPTCHA Alternatives</a></li>
          <li><a href="/hcaptcha-review">hCaptcha Review</a></li>
          <li><a href="/cloudflare-turnstile-review">Cloudflare Turnstile Review</a></li>
          <li><a href="/recaptcha-pricing">reCAPTCHA Pricing Breakdown</a></li>
          <li><a href="/invisible-captcha-php">Invisible CAPTCHA in PHP</a></li>
          <li><a href="/captcha-accessibility">Accessibility &amp; WCAG</a></li>
        </ul>
      </li>
      <li class="has-dropdown">
        <a href="#">Comparisons</a>
        <ul class="dropdown">
          <li><a href="/recaptcha-vs-hcaptcha">reCAPTCHA vs hCaptcha</a></li>
          <li><a href="/recaptcha-v2-vs-v3">reCAPTCHA v2 vs v3</a></li>
          <li><a href="/cloudflare-turnstile-vs-recaptcha">Turnstile vs reCAPTCHA</a></li>
          <li><a href="/hcaptcha-vs-turnstile">hCaptcha vs Turnstile</a></li>
          <li><a href="/recaptcha-alternative">Leave reCAPTCHA</a></li>
          <li><a href="/wordpress-captcha-plugins">WordPress Plugins</a></li>
        </ul>
      </li>
      <li class="has-dropdown">
        <a href="#">PHP Security</a>
        <ul class="dropdown">
          <li><a href="/php-form-spam-protection">Form Spam Protection</a></li>
          <li><a href="/php-form-validation">PHP Form Validation</a></li>
          <li><a href="/php-rate-limiting">Rate Limiting</a></li>
          <li><a href="/csrf-protection-php">CSRF Protection</a></li>
          <li><a href="/honeypot-spam-protection">Honeypot Technique</a></li>
          <li><a href="/gdpr-captcha">GDPR &amp; CAPTCHA</a></li>
          <li><a href="/recaptcha-gdpr-problem">reCAPTCHA &amp; GDPR</a></li>
        </ul>
      </li>
      <li class="has-dropdown">
        <a href="#">PHP Guides</a>
        <ul class="dropdown">
          <li><a href="/documentation/php-recaptcha">PHP reCAPTCHA v3</a></li>
          <li><a href="/documentation/php-hcaptcha">PHP hCaptcha</a></li>
          <li><a href="/documentation/php-turnstile">PHP Turnstile</a></li>
          <li><a href="/wordpress-contact-form-7-captcha">Contact Form 7 + CAPTCHA</a></li>
        </ul>
      </li>
    </ul>
  </div>
</nav>


<div class="docs-layout">
  <aside class="docs-sidebar">
  <select class="sidebar-select" onchange="window.location=this.value">
    <option value="">Jump to&hellip;</option>
    <optgroup label="Getting Started">
      <option value="/documentation/quickstart-guide">Quickstart Guide</option>
      <option value="/download">Download</option>
      <option value="/try-securimage">Try PHP CAPTCHA Options</option>
    </optgroup>
    <optgroup label="Securimage Documentation">
      <option value="/documentation/customizing-securimage">Customizing Securimage</option>
      <option value="/securimage-ajax">Securimage + AJAX</option>
      <option value="/captcha-gallery">CAPTCHA Gallery</option>
      <option value="/faq">FAQ</option>
    </optgroup>
    <optgroup label="WordPress">
      <option value="/download/wordpress-plugin">WordPress Plugin</option>
      <option value="/wordpress-captcha-plugins">WordPress CAPTCHA Plugins</option>
      <option value="/wordpress-contact-form-7-captcha">Contact Form 7 + CAPTCHA</option>
    </optgroup>
    <optgroup label="Modern PHP CAPTCHA">
      <option value="/documentation/php-recaptcha">Using reCAPTCHA v3</option>
      <option value="/documentation/php-hcaptcha">Using hCaptcha</option>
      <option value="/documentation/php-turnstile">Using Cloudflare Turnstile</option>
      <option value="/invisible-captcha-php">Invisible CAPTCHA in PHP</option>
    </optgroup>
    <optgroup label="Reviews">
      <option value="/hcaptcha-review">hCaptcha Review</option>
      <option value="/cloudflare-turnstile-review">Cloudflare Turnstile Review</option>
      <option value="/recaptcha-pricing">reCAPTCHA Pricing</option>
    </optgroup>
    <optgroup label="Comparisons">
      <option value="/captcha-alternatives">CAPTCHA Alternatives</option>
      <option value="/recaptcha-vs-hcaptcha">reCAPTCHA vs hCaptcha</option>
      <option value="/recaptcha-v2-vs-v3">reCAPTCHA v2 vs v3</option>
      <option value="/cloudflare-turnstile-vs-recaptcha">Turnstile vs reCAPTCHA</option>
      <option value="/hcaptcha-vs-turnstile">hCaptcha vs Turnstile</option>
      <option value="/recaptcha-alternative">Leave reCAPTCHA</option>
    </optgroup>
    <optgroup label="PHP Security">
      <option value="/php-form-spam-protection">PHP Form Spam Protection</option>
      <option value="/php-form-validation">PHP Form Validation</option>
      <option value="/php-rate-limiting">PHP Rate Limiting</option>
      <option value="/csrf-protection-php">CSRF Protection in PHP</option>
      <option value="/honeypot-spam-protection">Honeypot Spam Protection</option>
      <option value="/php-honeypot-tutorial">PHP Honeypot Tutorial</option>
      <option value="/math-captcha-php">Math CAPTCHA in PHP</option>
    </optgroup>
    <optgroup label="Compliance &amp; Accessibility">
      <option value="/captcha-accessibility">CAPTCHA Accessibility &amp; WCAG</option>
      <option value="/gdpr-captcha">GDPR &amp; CAPTCHA</option>
      <option value="/recaptcha-gdpr-problem">reCAPTCHA GDPR Problem</option>
    </optgroup>
  </select>

  <ul class="docs-nav">
    <li class="nav-section">Getting Started</li>
    <li><a href="/documentation/quickstart-guide">Quickstart Guide</a></li>
    <li><a href="/download">Download</a></li>
    <li><a href="/try-securimage">Try PHP CAPTCHA Options</a></li>

    <li class="nav-section">Securimage Docs</li>
    <li><a href="/documentation/customizing-securimage">Customizing Securimage</a></li>
    <li><a href="/securimage-ajax">Securimage + AJAX</a></li>
    <li><a href="/captcha-gallery">CAPTCHA Gallery</a></li>
    <li><a href="/faq">FAQ</a></li>
    <li><a href="/download/wordpress-plugin">WordPress Plugin</a></li>

    <li class="nav-section">Modern PHP CAPTCHA</li>
    <li><a href="/documentation/php-recaptcha">reCAPTCHA v3</a></li>
    <li><a href="/documentation/php-hcaptcha">hCaptcha</a></li>
    <li><a href="/documentation/php-turnstile">Cloudflare Turnstile</a></li>
    <li><a href="/invisible-captcha-php">Invisible CAPTCHA</a></li>

    <li class="nav-section">Reviews</li>
    <li><a href="/hcaptcha-review">hCaptcha Review</a></li>
    <li><a href="/cloudflare-turnstile-review">Turnstile Review</a></li>
    <li><a href="/recaptcha-pricing">reCAPTCHA Pricing</a></li>

    <li class="nav-section">Comparisons</li>
    <li><a href="/captcha-alternatives">CAPTCHA Alternatives</a></li>
    <li><a href="/recaptcha-vs-hcaptcha">reCAPTCHA vs hCaptcha</a></li>
    <li><a href="/recaptcha-v2-vs-v3">reCAPTCHA v2 vs v3</a></li>
    <li><a href="/cloudflare-turnstile-vs-recaptcha">Turnstile vs reCAPTCHA</a></li>
    <li><a href="/hcaptcha-vs-turnstile">hCaptcha vs Turnstile</a></li>
    <li><a href="/recaptcha-alternative">Leave reCAPTCHA</a></li>

    <li class="nav-section">PHP Security</li>
    <li><a href="/php-form-spam-protection">Form Spam Protection</a></li>
    <li><a href="/php-form-validation">Form Validation</a></li>
    <li><a href="/php-rate-limiting">Rate Limiting</a></li>
    <li><a href="/csrf-protection-php">CSRF Protection</a></li>
    <li><a href="/honeypot-spam-protection">Honeypot Protection</a></li>
    <li><a href="/php-honeypot-tutorial">Honeypot Tutorial</a></li>
    <li><a href="/math-captcha-php">Math CAPTCHA</a></li>

    <li class="nav-section">WordPress</li>
    <li><a href="/wordpress-captcha-plugins">WordPress Plugins</a></li>
    <li><a href="/wordpress-contact-form-7-captcha">Contact Form 7 + CAPTCHA</a></li>

    <li class="nav-section">Compliance &amp; Accessibility</li>
    <li><a href="/captcha-accessibility">Accessibility &amp; WCAG</a></li>
    <li><a href="/gdpr-captcha">GDPR &amp; CAPTCHA</a></li>
    <li><a href="/recaptcha-gdpr-problem">reCAPTCHA &amp; GDPR</a></li>
  </ul>
</aside>

  <main class="content-main">
    <h1>PHP CAPTCHA &amp; Bot Protection</h1>
    <section class="what-is">
  <img src="/static/images/hero.webp" alt="Securimage PHP CAPTCHA example" class="hero-float" width="380" height="380">
  <h2>What is Securimage?</h2>
  <p>
  Securimage is a self-hosted PHP CAPTCHA library that generates distorted images to block spam bots.
  Released in 2008, PHP developers picked it up for its simplicity and zero dependencies.
  </p>
  <div class="legacy-note">
  <strong>Securimage is a legacy project.</strong> It still works for existing installations, but new projects should use a modern alternative. Image CAPTCHAs are easy for modern bots to solve, hurt <a href="/captcha-accessibility">accessibility</a>, and kill form completion rates. See our <a href="/captcha-alternatives">full comparison of PHP CAPTCHA alternatives</a> for current recommendations.
  </div>
  </section>

  <section class="alternatives-hub">
  <h2>What to Use Instead</h2>
  <p>CAPTCHA has moved on since 2008. Today&#39;s best options are invisible to users and harder for bots to beat:</p>
  <div class="alt-grid">
    <a href="/captcha-alternatives" class="alt-card">
      <strong>CAPTCHA Alternatives</strong>
      <span>Full comparison of every major option in 2026 &mdash; Turnstile, hCaptcha, reCAPTCHA, honeypots and more.</span>
    </a>
    <a href="/hcaptcha-review" class="alt-card">
      <strong>hCaptcha Review</strong>
      <span>PHP integration, pricing tiers, GDPR stance, and an honest verdict on whether it beats reCAPTCHA.</span>
    </a>
    <a href="/cloudflare-turnstile-review" class="alt-card">
      <strong>Cloudflare Turnstile Review</strong>
      <span>Free, invisible, 1M requests/month. How it works in PHP and where it falls short.</span>
    </a>
    <a href="/recaptcha-pricing" class="alt-card">
      <strong>reCAPTCHA Pricing Breakdown</strong>
      <span>Free tier cut from 1M to 10K in April 2026. What it costs now and what to switch to.</span>
    </a>
  </div>
  </section>

  <section class="alternatives-hub">
  <h2>Comparisons</h2>
  <div class="alt-grid">
    <a href="/recaptcha-vs-hcaptcha" class="alt-card">
      <strong>reCAPTCHA vs hCaptcha</strong>
      <span>Privacy, performance and pricing compared. Which is right for your site?</span>
    </a>
    <a href="/recaptcha-v2-vs-v3" class="alt-card">
      <strong>reCAPTCHA v2 vs v3</strong>
      <span>Score-based vs challenge-based. When to use each and how to migrate.</span>
    </a>
    <a href="/cloudflare-turnstile-vs-recaptcha" class="alt-card">
      <strong>Turnstile vs reCAPTCHA</strong>
      <span>Cloudflare&#39;s free invisible CAPTCHA vs Google&#39;s market leader.</span>
    </a>
    <a href="/hcaptcha-vs-turnstile" class="alt-card">
      <strong>hCaptcha vs Turnstile</strong>
      <span>Two privacy-first reCAPTCHA alternatives. Side-by-side on pricing, PHP integration, and accuracy.</span>
    </a>
  </div>
  </section>

  <section class="alternatives-hub">
  <h2>PHP Security Guides</h2>
  <div class="alt-grid">
    <a href="/php-form-spam-protection" class="alt-card">
      <strong>PHP Form Spam Protection</strong>
      <span>Multiple layers: CAPTCHA, honeypot, rate limiting, and validation &mdash; with working PHP code.</span>
    </a>
    <a href="/php-form-validation" class="alt-card">
      <strong>PHP Form Validation</strong>
      <span>Server-side validation patterns with security built in. Filter, sanitize, and reject bad input.</span>
    </a>
    <a href="/csrf-protection-php" class="alt-card">
      <strong>CSRF Protection in PHP</strong>
      <span>Token-based CSRF defence. How to implement it correctly in PHP forms.</span>
    </a>
    <a href="/honeypot-spam-protection" class="alt-card">
      <strong>No-CAPTCHA Spam Protection</strong>
      <span>Protect PHP forms without any CAPTCHA using honeypot fields and time-based checks.</span>
    </a>
  </div>
  </section>

  <section class="features">
  <h2>Securimage Documentation</h2>
  <p>Still running Securimage? Here&#39;s what you need:</p>
  <ul>
  <li>Self-hosted &mdash; no external API calls or third-party data collection</li>
  <li>Requires PHP with the GD extension</li>
  <li>Customisable image size, character set, fonts, and distortion level</li>
  <li>Audible CAPTCHA for screen readers</li>
  <li>WordPress plugin available (Securimage-WP)</li>
  <li>GPL-licensed &mdash; <a href="https://github.com/dapphp/securimage">source on GitHub</a></li>
  </ul>
  <p><a href="/documentation/quickstart-guide">View documentation</a> &nbsp;&middot;&nbsp; <a href="/documentation/customizing-securimage">Customisation options</a></p>
  </section>
  </main>
</div>


<footer class="site-footer">
  <div class="footer-inner">
    <div class="footer-col">
      <strong>phpcaptcha.org</strong>
      <p>The open-source PHP CAPTCHA library and developer reference. Securimage is GPL-licensed.</p>
      <a href="https://github.com/dapphp/securimage" class="btn-sm">View on GitHub &rarr;</a>
    </div>
    <div class="footer-col">
      <strong>Documentation</strong>
      <ul>
        <li><a href="/documentation/quickstart-guide">Quickstart Guide</a></li>
        <li><a href="/documentation/customizing-securimage">Customizing Securimage</a></li>
        <li><a href="/download">Download</a></li>
        <li><a href="/faq">FAQ</a></li>
        <li><a href="/try-securimage">Try PHP CAPTCHAs</a></li>
      </ul>
    </div>
    <div class="footer-col">
      <strong>Reviews &amp; Comparisons</strong>
      <ul>
        <li><a href="/hcaptcha-review">hCaptcha Review</a></li>
        <li><a href="/cloudflare-turnstile-review">Turnstile Review</a></li>
        <li><a href="/recaptcha-pricing">reCAPTCHA Pricing</a></li>
        <li><a href="/recaptcha-v2-vs-v3">reCAPTCHA v2 vs v3</a></li>
        <li><a href="/hcaptcha-vs-turnstile">hCaptcha vs Turnstile</a></li>
        <li><a href="/captcha-alternatives">All Alternatives</a></li>
      </ul>
    </div>
    <div class="footer-col">
      <strong>PHP Security</strong>
      <ul>
        <li><a href="/php-form-spam-protection">Form Spam Protection</a></li>
        <li><a href="/php-form-validation">PHP Form Validation</a></li>
        <li><a href="/php-rate-limiting">Rate Limiting</a></li>
        <li><a href="/csrf-protection-php">CSRF Protection</a></li>
        <li><a href="/gdpr-captcha">GDPR &amp; CAPTCHA</a></li>
        <li><a href="/captcha-accessibility">Accessibility &amp; WCAG</a></li>
      </ul>
    </div>
  </div>
  <div class="footer-bottom">
    <p>&copy; phpcaptcha.org &mdash; Securimage is GPL-licensed. <a href="https://github.com/dapphp/securimage">View on GitHub</a>.</p>
  </div>
</footer>

<script src="/static/js/nav.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/components/prism-core.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/plugins/autoloader/prism-autoloader.min.js"></script>

</body>
</html>