‼️ Google reCAPTCHA (security) for Nette Framework \ Forms
Clone or download
Latest commit 1617b07 Nov 21, 2018

README.md

reCAPTCHA

Google reCAPTCHA implementation for Nette Framework forms.


Build Status Code coverage Licence Downloads this Month Downloads total Latest stable PHPStan

Discussion / Help

Join the chat

Versions

Branch Composer Nette PHP Readme
latest ~3.1.0 2.4 >=5.6 -
2.x ~2.1.0 2.4 >=5.6 README-2.x
1.6.x ~1.6.3 2.4 >=5.6 README-1.6
1.5.x ~1.5.2 2.3 >=5.4 README-1.5
1.4.x ~1.4.4 2.2 >=5.4 README-1.4
1.3.x ~1.3.0 2.1 >=5.4 README-1.3

Pre-installation

Add your site to the sitelist in reCAPTCHA administration.

reCAPTCHA

Installation

The latest version is most suitable for Nette 2.4 and PHP >=5.6.

composer require contributte/recaptcha

Configuration

extensions:
    recaptcha: Contributte\ReCaptcha\DI\ReCaptchaExtension

recaptcha:
    secretKey: ***
    siteKey: ***

Usage

use Nette\Application\UI\Form;

protected function createComponentForm() 
{
    $form = new Form();
    
    $form->addReCaptcha('recaptcha', $label = 'Captcha')
        ->setMessage('Are you a bot?');
    
    $form->addReCaptcha('recaptcha', $label = 'Captcha', $required = FALSE)
        ->setMessage('Are you a bot?');
    
    $form->addReCaptcha('recaptcha', $label = 'Captcha', $required = TRUE, $message = 'Are you a bot?');
    
    $form->onSuccess[] = function($form) {
        dump($form->getValues());
    }
}

Rendering

<form n:name="myForm">
	<div class="form-group">
		<div n:name="recaptcha"></div>
	</div>
</form>

Be sure to place this script before the closing tag of the body element (</body>).

<!-- re-Captcha -->
<script src='https://www.google.com/recaptcha/api.js'></script>

Invisible

reCAPTCHA

Usage

use Nette\Application\UI\Form;

protected function createComponentForm() 
{
    $form = new Form();
    
    $form->addInvisibleReCaptcha('recaptcha')
        ->setMessage('Are you a bot?');
    
    $form->addInvisibleReCaptcha('recaptcha', $required = FALSE)
        ->setMessage('Are you a bot?');
    
    $form->addInvisibleReCaptcha('recaptcha', $required = TRUE, $message = 'Are you a bot?');
    
    $form->onSuccess[] = function($form) {
        dump($form->getValues());
    }
}

Be sure to place this script before the closing tag of the body element (</body>).

Copy assets/invisibleRecaptcha.js and link it.

<script src="https://www.google.com/recaptcha/api.js?render=explicit"></script>
<script src="{$basePath}/assets/invisibleRecaptcha.js"></script>