@AlexWeb6667
Web-дизайнер с опытом FullStack разработки

Как правильно подключить reCapcha на yii2?

Привет народ, подскажите где ошибся, или я дурак или лыжи не едут. Подключаю плагин reCaptcha https://github.com/himiklab/yii2-recaptcha-widget, все работает, но валидация не пропускает чего-то.
В файле web.php подключил :

// Капча
'reCaptcha' => [
'name' => 'reCaptcha',
'class' => 'himiklab\yii2\recaptcha\ReCaptcha',
'siteKey' => '6LcyeS0UAAAAAGtTPNZ6AUyIhXXXXXXXXXX,
'secret' => '6LcyeS0UAAAAAG0ugrwlS9p9_-9XXXXXXXXXX',
],

в модели в правилах указал капчу как обязательное поле и класс самого расширения:

class Reviews extends ActiveRecord
{
public $image;
public $reCaptcha;
// Правила
public function rules()
{
return [

//Обязательные к заполнению
[['review','name','city','reCaptcha'], 'required', 'message' => 'Поле не может быть пустым ↓'],

// Проверяем длину сообщения
[['review'], 'string', 'length' => [100, 400], 'tooLong' => 'Сообщение не должно превышать 400 символов','tooShort' => 'Сообщение должно содержать минимум 100 символов'],

[['name','city'], 'string'],

//Формат изображения
[['image'], 'file', 'extensions' => 'png, jpg'],

[['reCaptcha'], \himiklab\yii2\recaptcha\ReCaptchaValidator::className(), 'secret' => '6LcyeS0UAAAAAG0ugrwlS9pXXXXXXXX', 'uncheckedMessage' => 'Please confirm that you are not a bot.']
];
}

}

ну и в виде:

<?php $form = ActiveForm::begin([
'id' => 'rew-form',
'layout' => 'horizontal',
'options' => ['class' => 'modal_rewiews_input','enctype' => 'multipart/form-data'],
'fieldConfig' => [
'template' => "{error}\n{input}",
'labelOptions' => ['class' => ''],
],
]) ?>

<?= $form->field($model, 'image')->fileInput(['class' => 'upload modal_rewiews_input','id' => 'files'])->label(false);?>





<?= $form->field($model, 'name')->textInput(['placeholder' => 'Имя фамилия'])->label(false) ?>

<?= $form->field($model, 'city')->textInput(['placeholder' => 'Город'])->label(false) ?>

<?= $form->field($model, 'review')->textarea(['rows' => 4, 'id' => 'good_reviews', 'placeholder' => 'Хорошие отзывы'])->label(false) ?>

<?= \himiklab\yii2\recaptcha\ReCaptcha::widget(['name' => 'reCaptcha']) ?>


<?= Html::submitButton('Оставить отзыв', ['class' => 'btn btn-primary main_btn form_btn', 'name' => 'button']) ?>


<?php $form = ActiveForm::end() ?>

если убираю reCapcha из обязательных полей то пропускает, но естественн тогда вообще смысл подключения теряется...

Не подскажите правильный порядок подключения?
  • Вопрос задан
  • 1783 просмотра
Решения вопроса 1
webinar
@webinar Куратор тега Yii
Учим yii: https://youtu.be/-WRMlGHLgRg
не надо делать капчу required
public $reCaptcha;
public function rules()
{
return [
public $reCaptcha;

public function rules()
{
  return [
      // ...
      [['reCaptcha'], \himiklab\yii2\recaptcha\ReCaptchaValidator::className(), 'secret' => 'your secret key', 'uncheckedMessage' => 'Please confirm that you are not a bot.']
  ];
}
];
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы