Я использую стандартную реализацию перекодировки yii2 по умолчанию. У меня проблема: я хочу изменить код captcha каждый раз, когда я обновляю страницу, но когда я обновляю страницу, код моей captcha не изменяется.yii2 captcha не изменяется на странице обновления
ответ
Update Ваш CaptchaAction
в
public function actions()
{
return [
'error' => [
'class' => 'yii\web\ErrorAction',
],
'captcha' => [
'class' => 'yii\captcha\CaptchaAction',
'fixedVerifyCode' => null,
],
];
}
Read Fixed Verify Code
IF fixedVerifyCode
если установлен, то расшифрованы же значение, выставиться в fixedVerifyCode
// code from yii\captcha\CaptchaAction in Yii2
public function getVerifyCode($regenerate = false)
{
if ($this->fixedVerifyCode !== null) {
return $this->fixedVerifyCode;
}
$session = Yii::$app->getSession();
$session->open();
$name = $this->getSessionKey();
if ($session[$name] === null || $regenerate) {
$session[$name] = $this->generateVerifyCode();
$session[$name . 'count'] = 1;
}
return $session[$name];
}
Это не сработает, поскольку «fixedVerifyCode» установлен как стандартный. –
Ответ не подходит для большинства случаев. – cronfy
Я нашел грязный способ обойти это - просто активируйте событие click
, когда страница загружается. Добавьте этот код в самый конец вашего файла view
, после окончания формы;
$js = <<<JS
$('#loginform-captcha-image').trigger('click');
JS;
$this->registerJs($js, $this::POS_READY);
Это не очень красиво, но это работает, и это единственный способ я нашел, чтобы получить aroun г этой проблемы, которая также страдает свои собственные сайты.
Наиболее правильным решением будет создать свой собственный CaptchaAction
, который расширяет yii\captcha\CaptchaAction
и переопределить метод run()
следующим образом:
namespace app\actions; // Change to your own
class CaptchaAction extends yii\captcha\CaptchaAction {
public $autoRegenerate = true;
public function run()
{
if ($this->autoRegenerate && Yii::$app->request->getQueryParam(self::REFRESH_GET_VAR) === null) {
$this->setHttpHeaders();
Yii::$app->response->format = Response::FORMAT_RAW;
return $this->renderImage($this->getVerifyCode(true));
}
return parent::run();
}
}
потому, что вы установили YII_ENV на ТЕСТ как этот defined('YII_ENV') or define('YII_ENV', 'test');
изменить его на defined('YII_ENV') or define('YII_ENV', 'prod');
попробуйте это
<script>
window.onload = hello;
function hello()
{
document.getElementById('loginform-captcha-image').click();
}
</script>
- 1. Yii2 captcha кнопка обновления
- 2. Captcha не работает в Yii2
- 3. Yii2 captcha image не отображается
- 4. yii2 captcha изображение не отображается
- 5. captcha doen't validate in yii2
- 6. YII2 Установка выбранного значения в DropDownlist на странице обновления
- 7. captcha Ссылка на изображение на странице html
- 8. jQuery: элемент не изменяется на странице Загрузка
- 9. Значение Server.ScriptTimeout не изменяется на странице ASP.Web
- 10. Как обновить изображение Captcha на странице asp.net
- 11. отображать изображение captcha на моей странице
- 12. Как добавить CAPTCHA, ControlForm на странице
- 13. Capcha код не изменяется обновления страницы в Yii
- 14. JavaScript: Найти Captcha на веб-странице
- 15. Yii2 Captcha обновить или перезагрузить изображение
- 16. Yii2 Виджет вкладки не изменяется после установки на активный
- 17. Как установить ярлык для виджета Yii2 Captcha?
- 18. yii2 обновить captcha при завершении проверки
- 19. yii2 назад на предыдущую страницу после обновления
- 20. Yii2 Недействительный идентификатор действия CAPTCHA в модуле
- 21. Yii Captcha не обновить изображение при нажатии кнопки обновления
- 22. Все обновления на странице обновления на __doPostBack
- 23. window.onbeforeunload выполняется на странице обновления, а не на странице закрыть
- 24. Yii2 mongoDb ошибка обновления
- 25. Значок не изменяется после обновления приложения
- 26. Страница не изменяется после обновления файла/загрузки
- 27. Создание обновления в Yii2
- 28. JQuery div не центрируется на странице обновления
- 29. Как ангулярные обновления не обновляются на странице?
- 30. Не удалось обновить данные на странице обновления
Скорее всего, captcha хранится i n a cash, – volkinc
Пожалуйста, отредактируйте вопрос и разместите код, иначе вопрос будет закрыт, см. справочный центр. – kebs
Нет необходимости публиковать какой-либо код. Я использую реализацию по умолчанию captcha. –