2017 © Pedro Peláez
 

library yii2-captcha

image

denis909/yii2-captcha

  • Friday, May 18, 2018
  • by denis909
  • Repository
  • 1 Watchers
  • 0 Stars
  • 6 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 2 Versions
  • 0 % Grown

The README.md

Двойная цифровая captcha для Yii 2

yii2

captcha

Суть метода защиты в том, что большинство автоматизированных спам-роботов распознает проверочный код, и вводит его в одно поле ввода, а мы создаем второе поле ввода с любым именем, и визуально оформляем поля так, что человеку будет понятно что надо ввести код в два поля, а роботу нет, и он пытается ввести код в одно поле. Чтобы упростить задачу распознавания кода для людей, капча теперь состоит только из цифр., (*1)

Такой метод защиты подойдет для мелких и средних сайтов, для которых никто не будет персонально разрабатывать спам-роботов. Из-за смены букв на цифры, криптостойкость проверочного кода относительно штатной капчи получается ниже, и если кто-то решит написать робота специально для вашего сайта, то ему это может будет даже проще, чем с обычной капчей., (*2)

скриншот, (*3)

Установка

composer require denis909/yii2-captcha

Пример использования

В форме выведите капчу:, (*4)

field($model, 'verifyCode')->widget(Captcha::className(), [
    'captchaAction' => '/site/captcha',
    'options' => [
        'class' => 'form-control'
    ],                  
    'attribute2' => 'verifyCode2',
    'attribute2Options' => [
        'class' => $model->hasErrors('verifyCode') 
            ? 'form-control ' . $form->errorCssClass 
            : 'form-control'
    ],              
    'containerTag' => 'div',
    'containerOptions' => [
        'class' => 'row gutters-xs'
    ],                  
    'imageContainerTag' => 'div',
    'imageContainerOptions' => [
        'class' => 'col-xs-3',
        'style' => 'min-width: 164px;'
    ],
    'attributeContainerTag' => 'div',
    'attributeContainerOptions' => [
        'class' => 'col-xs-2',
        'style' => 'padding-right: 0px;'
    ],
    'devider' => '—',
    'deviderTag' => 'div',
    'deviderOptions' => [
        'class' => 'col-xs-1',
        'style' => 'padding-top: 15px; text-align: center;'
    ],
    'attribute2ContainerTag' => 'div',
    'attribute2ContainerOptions' => [
        'class' => 'col-xs-2',
        'style' => 'padding-left: 0px;'
    ]
]);?>

Настройте капчу в контроллере:, (*5)

public function actions()
{
    return [
        'captcha' => [
            'class' => 'denis909\yii\captcha\CaptchaAction',
            'fixedVerifyCode' => YII_ENV_TEST ? 'testme' : null,
            'testLimit' => 10,
            'width' => 150,
            'height' => 49,
            'offset' => 10,
            'minLength' => 5,
            'maxLength' => 5,
            'padding' => 0,
            'foreColor' => 0x4a4949,
            //'resetValidCaptcha' => false                
        ]
    ];
}

Если включить resetValidCaptcha в false то надо вручную обнулять в контроллере после сабмита формы., (*6)

$captcha = $this->createAction('captcha');

$captcha->reset();

Настройте поля в модели:, (*7)

public $verifyCode;

public $verifyCode2;

public function rules()
{
    return [
        [
            'verifyCode', 
            \denis909\yii\captcha\CaptchaValidator::className(), 
            'attribute2' => 'verifyCode2',
            'captchaAction' => '/site/captcha'
        ]
    ];
}

Об авторе

Здравствуйте, меня зовут Денис. Я занимаюсь разработкой веб-приложений на PHP около 10 лет. Работаю на Yii 2 фреймворке. Владею PHP, MySQL, JavaScript(jQuery), HTML5(bootstrap)., (*8)

Мой сайт: denis909.spb.ru, (*9)

Пишите в форме обратной связи на сайте, или на denis909@mail.ru, если у вас есть для меня предложения по работе., (*10)

The Versions

18/05 2018

dev-master

9999999-dev

  Sources   Download

MIT

The Requires

 

yii2 captcha

16/05 2018

1.0

1.0.0.0

  Sources   Download

MIT

The Requires

 

yii2 captcha