richweber / yii2-recaptcha
Yii 2 Framework extension for Google reCAPTCHA
Installs: 32 294
Dependents: 0
Suggesters: 0
Security: 0
Stars: 2
Watchers: 3
Forks: 0
Open Issues: 1
Type:yii2-extension
Requires
- yiisoft/yii2: *
This package is auto-updated.
Last update: 2024-12-13 11:13:18 UTC
README
ReCAPTCHA lets you embed a CAPTCHA in your web pages in order to protect them against spam and other types of automated abuse.
Installation
Adding reCAPTCHA to your site consists of three steps:
- Getting started
- Displaying the widget
- Verifying the user's response
The preferred way to install this extension is through composer.
Either run
$ php composer.phar require richweber/yii2-recaptcha "dev-master"
or add
"richweber/yii2-recaptcha": "dev-master"
to the require
section of your composer.json
file.
Usage
Component Configuration
'components' => [ ... 'recaptcha' => [ 'class' => 'richweber\recaptcha\ReCaptcha', 'siteKey' => 'https://www.google.com/recaptcha/admin', 'secretKey' => 'https://www.google.com/recaptcha/admin', 'errorMessage' => 'Are you robot?', ], ... ],
Displaying the widget
use richweber\recaptcha\Captcha; <?php $form = ActiveForm::begin(['id' => 'contact-form']); ?> <?= $form->field($model, 'name') ?> <?= $form->field($model, 'email') ?> <?= $form->field($model, 'subject') ?> <?= $form->field($model, 'body')->textArea(['rows' => 6]) ?> <?= Captcha::widget() ?> <div class="form-group"> <?= Html::submitButton('Submit', ['class' => 'btn btn-primary', 'name' => 'contact-button']) ?> </div> <?php ActiveForm::end(); ?>
Verifying the user's response
public function actionContact() { $model = new ContactForm(); if ( $model->load(Yii::$app->request->post()) && Yii::$app->recaptcha->verifyResponse( $_SERVER['REMOTE_ADDR'], Yii::$app->request->post('g-recaptcha-response')) && $model->contact(Yii::$app->params['adminEmail']) ) { Yii::$app->session->setFlash('contactFormSubmitted'); return $this->refresh(); } else { return $this->render('contact', [ 'model' => $model, ]); } }
License
yii2-recaptcha is released under the BSD 3-Clause License. See the bundled LICENSE.md
for details.