Yii2 капча не работает

Содержание
  1. Почему Yii2 captcha не проходит проверку на стороне клиента?
  2. 5 ответов
  3. Проблема и лучшее решение.
  4. Не очень хорошая альтернатива вышеперечисленному:
  5. Как правильно подключить reCapcha на yii2?
  6. Yii Framework
  7. captcha не работает
  8. captcha не работает
  9. Re: captcha не работает
  10. Re: captcha не работает
  11. Re: captcha не работает
  12. Re: captcha не работает
  13. Re: captcha не работает
  14. Re: captcha не работает
  15. Re: captcha не работает
  16. Re: captcha не работает
  17. Re: captcha не работает
  18. Re: captcha не работает
  19. Re: captcha не работает
  20. Re: captcha не работает
  21. Re: captcha не работает
  22. Re: captcha не работает
  23. Yii Framework
  24. Почему в Yii2 каптча всегда выдает *Неправильный проверочный код* при model->save()?
  25. Почему в Yii2 каптча всегда выдает *Неправильный проверочный код* при model->save()?
  26. Re: Почему в Yii2 каптча всегда выдает *Неправильный проверочный код* при model->save()?
  27. Re: Почему в Yii2 каптча всегда выдает *Неправильный проверочный код* при model->save()?
  28. Re: Почему в Yii2 каптча всегда выдает *Неправильный проверочный код* при model->save()?
  29. Re: Почему в Yii2 каптча всегда выдает *Неправильный проверочный код* при model->save()?
  30. Re: Почему в Yii2 каптча всегда выдает *Неправильный проверочный код* при model->save()?
  31. Re: Почему в Yii2 каптча всегда выдает *Неправильный проверочный код* при model->save()?
  32. Не могу пройти капчу, на чистом basic приложении. #9007
  33. Comments
  34. Ineigo commented Jul 5, 2015
  35. ismorodin commented Jul 5, 2015
  36. githubjeka commented Jul 5, 2015
  37. githubjeka commented Jul 5, 2015
  38. Ineigo commented Jul 5, 2015
  39. githubjeka commented Jul 5, 2015
  40. Ineigo commented Jul 6, 2015
  41. githubjeka commented Jul 6, 2015

Почему Yii2 captcha не проходит проверку на стороне клиента?

Я использую модуль Yii2 admin , изображение captcha отображается в форме. После ввода кода проверки подсказки всегда отображали сообщение об ошибке на стороне клиента, но я уверен, что оно было введено правильно. Затем я просматриваю исходный код и обнаружил, что неправильно установил атрибут captchaAction ( \yii\captcha\CaptchaValidator ), значение по умолчанию captchaAction равно <>, но мой контроллер app\modules\admin\controllers\PublicController , я думаю, что значение captchaAction должно быть admin/public/captcha , но как его установить?

Читайте также:  Не работает мгтс джипон

Ниже приведен код моей страницы просмотра:

Вот мой контроллер :

5 ответов

Будьте осторожны с формой, проверенной AJAX. Captcha Yii будет перезагружен, если вы подтвердите Ajax. Итак, в этом случае мы можем решить двумя способами:

  1. Отключите ajaxValidation , включите clientValidation . Например: форма регистрации
  1. Функция отмены проверки CaptchaAction , не getVerifyCode через AJAX.

Убедитесь, что у вас есть капча в правилах доступа для вашей роли.

Изменить правила формы модели

Проблема и лучшее решение.

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

По умолчанию используется проверка слайдов клиента, однако иногда проверка может выполняться только на стороне сервера, поэтому эта функция может быть приятной. В дополнение к глобальному параметру каждый отдельный вход может указывать использование enableAjaxValidation или нет. Однако по какой-то причине виджет Captcha явно не устанавливает для него значение false .

В большинстве случаев, когда для некоторых входных данных требуется проверка AJAX, вероятно, лучше оставить ее по умолчанию и включить ее для нужных элементов управления. Например, если у нас есть форма регистрации пользователя, в которой есть валидатор AJAX для проверки повторяющихся имен пользователей, мы можем включить его только для этого одного ввода.

Такой способ также дает нам некоторые другие преимущества, такие как сокращение количества запросов AJAX за счет проверки того, что вы можете делать на стороне клиента, и, по возможности, более быстрого ответа.

Не очень хорошая альтернатива вышеперечисленному:

Вот более старое альтернативное решение, основанное на ответе @ AnHuy.

В контроллере с действием captcha ( SiteController при использовании начальных проектов Yii2) найдите раздел actions .

Замените yii\captcha\CaptchaAction на свой собственный путь к классу, который будет подклассом действия Yii, в этом случае я буду использовать app\models\captcha\CaptchaAction .

Теперь создайте подкласс действия, в данном случае models/captcha/CaptchaAction.php .

В основном он проверяет, является ли это проверкой проверки AJAX, и в этом случае возвращает истину, пропуская истекающую проверку проверки. В противном случае проверка выполняется как обычно.

При использовании капчи вне SiteController вы должны внести изменения в 3 файла:

Определите captchaAction в методе маршрута модели, где вы определили саму проверку captcha:

Определите действие captcha в вашем контроллере:

Измените действие рендеринга изображения в файле просмотра:

Источник

Как правильно подключить 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 символов’],

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

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

‘rew-form’,
‘layout’ => ‘horizontal’,
‘options’ => [‘class’ => ‘modal_rewiews_input’,’enctype’ => ‘multipart/form-data’],
‘fieldConfig’ => [
‘template’ => «\n«,
‘labelOptions’ => [‘class’ => »],
],
]) ?>

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

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

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

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

‘btn btn-primary main_btn form_btn’, ‘name’ => ‘button’]) ?>

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

Не подскажите правильный порядок подключения?

Источник

Yii Framework

captcha не работает

captcha не работает

Re: captcha не работает

Сообщение maleks » 2016.05.18, 07:50

Re: captcha не работает

Re: captcha не работает

Сообщение maleks » 2016.05.18, 21:04

Если все равно не работает, то дебажьте, ищите проблему, и репортите баг.

Re: captcha не работает

Сообщение lgXenos » 2016.05.18, 21:19

И Вам ваучер.
Сегодня на работе тоже была «проблема» с капчей. Как оказалось — все очень индивидуально для каждого велосипеда.

Был контроллер регистрации из двух экшенов: new и success
Тип регистрации раздвоился. Коллега, недолго думая, сделал route: /register/ => register/new
Капча отвалилась.

Т.к. она была добавлена в этот же контроллер. И этот роут ее просто перезаписал

Re: captcha не работает

Если все равно не работает, то дебажьте, ищите проблему, и репортите баг.

Re: captcha не работает

И Вам ваучер.
Сегодня на работе тоже была «проблема» с капчей. Как оказалось — все очень индивидуально для каждого велосипеда.

Был контроллер регистрации из двух экшенов: new и success
Тип регистрации раздвоился. Коллега, недолго думая, сделал route: /register/ => register/new
Капча отвалилась.

Т.к. она была добавлена в этот же контроллер. И этот роут ее просто перезаписал

Re: captcha не работает

Сообщение lgXenos » 2016.05.19, 19:57

Re: captcha не работает

Сообщение GroZa » 2016.05.20, 11:35

Re: captcha не работает

Re: captcha не работает

Сообщение lgXenos » 2016.05.20, 23:10

Я б все таки предложил покидать капчу по разным контроллерам. Ибо запись ‘captchaAction’ => ‘/main/default/captcha’ по идее ищет в модуле main, контроллере а потом экшене

Re: captcha не работает

Я б все таки предложил покидать капчу по разным контроллерам. Ибо запись ‘captchaAction’ => ‘/main/default/captcha’ по идее ищет в модуле main, контроллере а потом экшене

Re: captcha не работает

Re: captcha не работает

Re: captcha не работает

Сообщение Jluct » 2016.07.07, 10:43

Доброго времени суток! Примерно такая же проблема(
Использую basic 2.0.8.
В форму записываю например «reloko», а после отправки формы, в сессии уже напр. «[__captcha/site/captcha] => zrmuoo», и captcha становится не валидной.
Притом, что странно. В приложении, я использую captcha в 3х формах и вот какой результат:
1. Контакты — работает на моём локальном сервере, на продакшене нет.
2. Курсы — нигде не работает.
3. Заказ справки — работает везде.

Пробовал всё приводить к работающей форме, не помогает

Источник

Yii Framework

Почему в Yii2 каптча всегда выдает *Неправильный проверочный код* при model->save()?

Почему в Yii2 каптча всегда выдает *Неправильный проверочный код* при model->save()?

Сообщение EVOSandru6 » 2017.11.14, 08:13

Есть такая проблема. Сделал Captcha для формы заказов аналогично как у контактов по умолчанию:

Re: Почему в Yii2 каптча всегда выдает *Неправильный проверочный код* при model->save()?

Сообщение Dominus » 2017.11.14, 11:31

В виде и в правилах модели.

И еще проверьте правило маршрутизации в urlManager

Re: Почему в Yii2 каптча всегда выдает *Неправильный проверочный код* при model->save()?

Сообщение urichalex » 2017.11.14, 12:45

В виде и в правилах модели.

И еще проверьте правило маршрутизации в urlManager

роут нужно указывать в массиве, иначе это обычный урл и, если изменятся правила роутинга, будет 404

Автор, аякс валидация включена у формы?

Re: Почему в Yii2 каптча всегда выдает *Неправильный проверочный код* при model->save()?

Сообщение Dominus » 2017.11.14, 16:10

Re: Почему в Yii2 каптча всегда выдает *Неправильный проверочный код* при model->save()?

Сообщение urichalex » 2017.11.14, 16:22

Re: Почему в Yii2 каптча всегда выдает *Неправильный проверочный код* при model->save()?

Сообщение Dominus » 2017.11.14, 17:16

При таком раскладе всё работает корректно.

Если указать в View

Картинка отображается, валидация проходит только 1 раз. При обновлении картинки и вводе кода, валидация не проходит.

Если так же указать в правилах модели

В общем то я не стал заморачиваться и оставил так, как корректно работает.

Re: Почему в Yii2 каптча всегда выдает *Неправильный проверочный код* при model->save()?

Сообщение EVOSandru6 » 2017.11.15, 06:50

Источник

Не могу пройти капчу, на чистом basic приложении. #9007

Comments

Ineigo commented Jul 5, 2015

На днях установил гит, композер, установил, по описанию в офф документации yii2 basic. Зашел в форму отправки сообщения и попытался отправить форму. Но валидация капчи не проходит, типо неверно ввел.

Совсем ни чего не менял.

Среда запуска: php 5.6, сервер запускал из папки web командой php -S localhost:8888, приложение запускал в трех браузерах: Хром, ИЕ, Мозила.

Подскажите с чем это может быть связано и как решить проблему?

The text was updated successfully, but these errors were encountered:

ismorodin commented Jul 5, 2015

Попробуй почитать здесь #1456

githubjeka commented Jul 5, 2015

@ismorodin тут не связано с ajax валидацией.

Тут при clientValidateAttribute =false всё успешно проходит, а как только при clientValidateAttribute=true (как по умолчанию в basic приложении для contact формы) уже не работает.

githubjeka commented Jul 5, 2015

@Ineigo а какие-нибудь ошибки есть в debug браузера?

Ineigo commented Jul 5, 2015

В том и дело, что ни ошибок, ни запросов, ни чего. Запрос выполняется только при нажатии на картинку(смена кода капчи)
@ismorodin Спасибо но я не дружу с английским, завтра попробую перевести)

githubjeka commented Jul 5, 2015

Запрос не должен отправляться.

Каптча хранится в виде hash числа(как сумма кодов каждого символа), это число получает на стороне сервера и передаётся в html. При вводе каптчи, в браузере с помощью js ( charCodeAt) получается число — сумма юникодов каждого символа, которые вы ввели. Эта сумма сравнивается с hash и если это утверждение неверно, то вы получаете ошибку, что капчта введена неверно.

Поэтому очень странно, что у вас всегда hash не равен верной каптче.

Ineigo commented Jul 6, 2015

Попробовал на работе тоже сделать, у меня капча прошла валидацию.
Немного пошалив со средой запуска(сервер локальный) свелся к выводу:
«Если запускать yii 2 приложение из консоли командой php -S localhost:8888, то капча не проходит валидацию. Если пошаманить с Denwer настройками apache2 на нужную папку, то капча проходит валидацию.»
Может кто сможет мне подсказать почему так происходит.
П.С.: Просто удобно запускать (php -S localhost:8888) из папки yii2, когда только изучаешь.

githubjeka commented Jul 6, 2015

Если пошаманить с Denwer настройками apache2 на нужную папку, то капча проходит валидацию

Источник

Оцените статью