Giter VIP home page Giter VIP logo

recaptcha's Introduction

reCAPTCHA PHP client library

Build Status Latest Stable Version Total Downloads

Description

reCAPTCHA is a free CAPTCHA service that protect websites from spam and abuse. This is Google authored code that provides plugins for third-party integration with reCAPTCHA.

Installation

Composer (Recommended)

Composer is a widely used dependency manager for PHP packages. This reCAPTCHA client is available on Packagist as google/recaptcha and can be installed either by running the composer require command or adding the library to your composer.json. To enable Composer for you project, refer to the project's Getting Started documentation.

To add this dependency using the command, run the following from within your project directory:

composer require google/recaptcha "~1.1"

Alternatively, add the dependency directly to your composer.json file:

"require": {
    "google/recaptcha": "~1.1"
}

Direct download (no Composer)

If you wish to install the library manually (i.e. without Composer), then you can use the links on the main project page to either clone the repo or download the ZIP file. For convenience, an autoloader script is provided in src/autoload.php which you can require into your script instead of Composer's vendor/autoload.php. For example:

require('/path/to/recaptcha/src/autoload.php');
$recaptcha = new \ReCaptcha\ReCaptcha($secret);

The classes in the project are structured according to the PSR-4 standard, so you may of course also use your own autoloader or require the needed files directly in your code.

Development install

If you would like to contribute to this project or run the unit tests on within your own environment you will need to install the development dependencies, in this case that means PHPUnit. If you clone the repo and run composer install from within the repo, this will also grab PHPUnit and all its dependencies for you. If you only need the autoloader installed, then you can always specify to Composer not to run in development mode, e.g. composer install --no-dev.

Note: These dependencies are only required for development, there's no requirement for them to be included in your production code.

Usage

First, register keys for your site at https://www.google.com/recaptcha/admin

When your app receives a form submission containing the g-recaptcha-response field, you can verify it using:

<?php
$recaptcha = new \ReCaptcha\ReCaptcha($secret);
$resp = $recaptcha->verify($gRecaptchaResponse, $remoteIp);
if ($resp->isSuccess()) {
    // verified!
    // if Domain Name Validation turned off don't forget to check hostname field
    // if($resp->getHostName() === $_SERVER['SERVER_NAME']) {  }
} else {
    $errors = $resp->getErrorCodes();
}

You can see an end-to-end working example in examples/example-captcha.php

Upgrading

From 1.0.0

The previous version of this client is still available on the 1.0.0 tag in this repo but it is purely for reference and will not receive any updates.

The major changes in 1.1.0 are:

  • installation now via Composer;
  • class loading also via Composer;
  • classes now namespaced;
  • old method call was $rc->verifyResponse($remoteIp, $response), new call is $rc->verify($response, $remoteIp)

Contributing

We accept contributions via GitHub Pull Requests, but all contributors need to be covered by the standard Google Contributor License Agreement. You can find instructions for this in CONTRIBUTING

recaptcha's People

Contributors

dseguy avatar fbonzon avatar felipevolpatto avatar ircmaxell avatar jajodiaraghav avatar jakubsvestka avatar kasimtan avatar luspa avatar orlitzky avatar redian avatar rowan-m avatar seast avatar xthiago avatar yingliu-google avatar

Watchers

 avatar  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.