PHPackages                             ethercap/yii2-captcha - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. ethercap/yii2-captcha

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

ethercap/yii2-captcha
=====================

Another yii2 captcha

381PHP

Since May 15Pushed 8y ago1 watchersCompare

[ Source](https://github.com/ethercap/yii2-captcha)[ Packagist](https://packagist.org/packages/ethercap/yii2-captcha)[ RSS](/packages/ethercap-yii2-captcha/feed)WikiDiscussions master Synced 3d ago

READMEChangelogDependenciesVersions (2)Used By (0)

yii2-captcha
============

[](#yii2-captcha)

yii2框架的Js验证码，所有的使用方式跟系统自带的yii\\captcha\\Captcha一致。

本代码主要使用极验的服务，并进行yii2封装，使得所有的代码开放极为简单！感谢极验团队提供的免费服务，同时也欢迎购买其付费服务！

安装
--

[](#安装)

推荐的方式是通过composer 进行下载安装[composer](http://getcomposer.org/download/)。

添加入如下两行：

```
"ethercap/yii2-captcha" : "@dev",
"gee-team/gt3-php-sdk": "@dev",

```

到你的`composer.json`文件中的require段。

使用
--

[](#使用)

如下为极验js验证码的示例，我们将以登录为例来讲解如何使用该插件：

[![image](./docs/img/geetest.gif)](./docs/img/geetest.gif)

1. 在配置文件中（如common/config/main.php）加入如下的代码：

```
return [
    'components' => [
        'geetest' => [
            'class' => 'ethercap\captcha\Geetest',
            'gtId' => '极验的ID'
            'gtKey' => '极验的Key',
            ],
        ],
    ]
];
```

2. 在LoginForm中加入captcha的rules, LoginForm的示例可能如下：

```
class LoginForm extends Model
{
    public $phone;
    public $smsCaptcha;
    public $captcha;
    public $rememberMe = true;

    // ...其它代码

    public rules()
    {
        return [
            // 该规则类似于\yii\captcha\CaptchaValidator,会将post过来的数据自动去极验后台校验
            ['captcha', '\ethercap\captcha\GtCaptchaValidator'],
            // ...其它规则
        ],
    }

    public function login()
    {
        //具体登录代码...
    }

    public function sendSms()
    {
        //具体发送验证码代码...
    }
}
```

3.在前端页面(如login.php)上加上captcha的展示:

```
