Добавляем CAPTCHA к форме
- samdark
- Администратор
- Сообщения: 9489
- Зарегистрирован: 2009.04.02, 13:46
- Откуда: Воронеж
- Контактная информация:
Добавляем CAPTCHA к форме
Нравится Yii? Давайте сделаем его лучше!.
Re: Добавляем CAPTCHA к форме
Если есть аякс проверка на капчу, то после проверки значение капча меняеться, но картинка в браузере пользователя остаеться старой. Из за этого форма может "сабмититься" не с первого раза, не смотря на то что все данные введены правильно.
Решение:
При аякс запросе отключать валидатор капчи или обновлять капчу после запроса.
Если ли еще какие то методы решения ?
Решение:
При аякс запросе отключать валидатор капчи или обновлять капчу после запроса.
Если ли еще какие то методы решения ?
Re: Добавляем CAPTCHA к форме
А как добавлять CAPTCHA в форму, если работаешь через построитель форм?
Re: Добавляем CAPTCHA к форме
Я столкнулся с такой проблемой, что
Ну это я так, если вдруг кто-нибудь еще мучается. Вроде нигде об этом не видел упоминания.
И да:
Хотя, при определенной смекалке, и оттуда можно много пользы извлечь.
для её решения пришлось поставить php-gdGD and FreeType PHP extensions are required.
Ну это я так, если вдруг кто-нибудь еще мучается. Вроде нигде об этом не видел упоминания.
И да:
уже не такие уж и отличные, ибо очень устарели. Я по ним и пытался прикрутить капчу к стандартному демо-блогу, но после нескольких неудач вышел на сабж-статью. Она намного актуальнее.Отличные материалы по CAPTCHA на dbhelp.ru.
Хотя, при определенной смекалке, и оттуда можно много пользы извлечь.
десу же
Re: Добавляем CAPTCHA к форме
Сталкнулся с такой проблемой:
Прикрутил каптчу к контроллеру (main) в нем есть два экшена где она используется, но при переходе из одно экшена на другой картинка не меняется. Так же каптча не изменяется при обновлении страницы. Изменяется только в том случае когда кликнуть на обновлении каптчи. Причем после валидации если что то неправильно каптча обновляется, но картинка остается старой (пока не кликнишь на обновление каптчи).
Поставил кастыль ( $('#GetCapcha').trigger('click'); ) при обновлении и валидации, но это не правильный подход.
Как можно решить данную проблему?
Прикрутил каптчу к контроллеру (main) в нем есть два экшена где она используется, но при переходе из одно экшена на другой картинка не меняется. Так же каптча не изменяется при обновлении страницы. Изменяется только в том случае когда кликнуть на обновлении каптчи. Причем после валидации если что то неправильно каптча обновляется, но картинка остается старой (пока не кликнишь на обновление каптчи).
Поставил кастыль ( $('#GetCapcha').trigger('click'); ) при обновлении и валидации, но это не правильный подход.
Как можно решить данную проблему?
Re: Добавляем CAPTCHA к форме
Почитал статью, вроде бы все сделал по примеру, но возникла проблема с валидацией - поле ввода капчи не проверяется вообще.
Поковырялся - оказывается запись в моей модели
как атрибут отсутствует и, соответственно, значение введенное/не ведденное в форму пользователем не проверяется.
Возможно кто-то сталкивался с чем-то похожим?
Поковырялся - оказывается запись в моей модели
Код: Выделить всё
public $verifycode;
Возможно кто-то сталкивался с чем-то похожим?
-
- Сообщения: 2
- Зарегистрирован: 2014.01.21, 07:11
Re: Добавляем CAPTCHA к форме
Прочитал статью. Сделал новое приложение на Yii. Создал новую таблицу в базе данных. Через gii сделал , модель и crud. Переопределил defaultController на , работающий с таблицей. В этом контроллере сделал все actions доступными для всех пользователей. В форму создания записи добавил капчу по рецепту.
Подскажите, пожалуйста, почему картинка не отображается? Выглядит это так. Могу еще код приложить, но он один в один по рецепту.
Вообще, заметил что картинка с капчей также не отображается и в контактной форме стандартного приложения. Почему так может быть?
Подскажите, пожалуйста, почему картинка не отображается? Выглядит это так. Могу еще код приложить, но он один в один по рецепту.
Вообще, заметил что картинка с капчей также не отображается и в контактной форме стандартного приложения. Почему так может быть?
- samdark
- Администратор
- Сообщения: 9489
- Зарегистрирован: 2009.04.02, 13:46
- Откуда: Воронеж
- Контактная информация:
Re: Добавляем CAPTCHA к форме
Для работы с картинками в PHP нужен GD или Imagemagick.
Нравится Yii? Давайте сделаем его лучше!.
-
- Сообщения: 2
- Зарегистрирован: 2014.01.21, 07:11
Re: Добавляем CAPTCHA к форме
А проверить - загружены ли эти библиотеки можно как-то так?
Добавил этот код в представление, сразу после формы.
На хостинге и на localhost выдало gd loaded imagemagick not loaded. А одной GD должно быть достаточно?
Код: Выделить всё
<?php if (extension_loaded('gd')) {?>
gd loaded
<? }
else {?>
gd not loaded
<? } ?>
<?php if (extension_loaded('imagemagick')) {?>
imagemagick loaded
<? }
else {?>
imagemagick not loaded
<? } ?>
На хостинге и на localhost выдало gd loaded imagemagick not loaded. А одной GD должно быть достаточно?
Re: Добавляем CAPTCHA к форме
Без указания параметра captchaAction в модели, каптча валидацию не проходит. Пол дня потратил на чтение форума и поиск проблемы, каптча показывается, но валидация не проходит.
Предлагаю добавить комментарий по этому поводу в рецепт.
В отображение формы добавляем:
В модель добавляем:
Предлагаю добавить комментарий по этому поводу в рецепт.
В отображение формы добавляем:
Код: Выделить всё
$this->controller->widget('CCaptcha', ['captchaAction' => '//site/captcha']);
Код: Выделить всё
public function rules()
{
return [
['verifyCode', 'captcha', 'on' => 'insert',
'allowEmpty' => !CCaptcha::checkRequirements(),
'captchaAction' => '//site/captcha'
],
];
}
- samdark
- Администратор
- Сообщения: 9489
- Зарегистрирован: 2009.04.02, 13:46
- Откуда: Воронеж
- Контактная информация:
Re: Добавляем CAPTCHA к форме
Сделаете в виде pull request-а сюда? https://github.com/samdark/yiiframework_ru_cookbook
Нравится Yii? Давайте сделаем его лучше!.