Git Product home page Git Product logo

responsive-captcha's Introduction

Responsive Captcha

Packagist Version License Build Status

Prevent form spam by generating random, accessible arithmetic and logic questions.

Examples:

  • "What is the fourth letter in snowboard?"
  • "What is the sum of four and six?"
  • "What is eight multiplied by two?"
  • "Which is smallest: sixty-six, one hundred, or twenty-two?"

Users can respond with either the numeric or textual version of an answer (e.g. "16" or "sixteen").

For background info on this project, see my blog post: https://theodorejb.me/2012/12/30/responsive-captcha/

Install via Composer

composer require theodorejb/responsive-captcha

Usage

  1. Generate a random question:

    use function theodorejb\ResponsiveCaptcha\{randomQuestion, checkAnswer};
    
    $qa = randomQuestion();
    $realAnswer = $qa->getAnswer(); // save somewhere (e.g. in session or encrypted single-use token)
  2. Display question in form:

    <label>
        <?= $qa->getQuestion() ?>
        <input type="text" name="captcha" />
    </label>
  3. Check whether the user's response is correct:

    $answer = filter_input(INPUT_POST, "captcha");
    
    if ($answer !== null) {
        if (checkAnswer($answer, $realAnswer)) {
            // code to execute if the captcha answer is correct
        } else {
            // the answer is incorrect - show an error to the user
        }
    }

responsive-captcha's People

Contributors

theodorejb avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.