richweber / yii2-recaptcha
Google reCAPTCHA 的 Yii 2 框架扩展
1.0.0
2014-12-13 20:32 UTC
Requires
- yiisoft/yii2: *
This package is auto-updated.
Last update: 2024-09-13 10:36:06 UTC
README
ReCAPTCHA 允许您将 CAPTCHA 嵌入到您的网页中,以保护网站免受垃圾邮件和其他类型的自动化滥用。
安装
将 reCAPTCHA 添加到您的网站包括三个步骤
- 入门
- 显示小部件
- 验证用户的响应
安装此扩展的首选方法是使用 composer。
运行以下命令:
$ php composer.phar require richweber/yii2-recaptcha "dev-master"
或者
"richweber/yii2-recaptcha": "dev-master"
将以下内容添加到您的 composer.json
文件的 require
部分:
用法
组件配置
'components' => [ ... 'recaptcha' => [ 'class' => 'richweber\recaptcha\ReCaptcha', 'siteKey' => 'https://www.google.com/recaptcha/admin', 'secretKey' => 'https://www.google.com/recaptcha/admin', 'errorMessage' => 'Are you robot?', ], ... ],
显示小部件
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(); ?>
验证用户的响应
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, ]); } }
许可证
yii2-recaptcha 根据 BSD 3-Clause 许可证发布。有关详细信息,请参阅附带文件 LICENSE.md
。