Капча

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
lego
Сообщения: 26
Зарегистрирован: 2014.04.16, 15:22

Капча

Сообщение lego »

Здравствуйте, на форме есть капча, данные отправляются аяксом в beforesubmit, как сделать так что бы после нажатия на кнопку капча изменилась? Получается так что она изменяется, но картинка остается прежняя.
Аватара пользователя
samdark
Администратор
Сообщения: 9489
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: Капча

Сообщение samdark »

Вопрос по Yii2 или Yii 1.1?
lego
Сообщения: 26
Зарегистрирован: 2014.04.16, 15:22

Re: Капча

Сообщение lego »

Sam Dark писал(а):Вопрос по Yii2 или Yii 1.1?
yii2
Аватара пользователя
vova07
Сообщения: 1004
Зарегистрирован: 2012.11.29, 14:52
Откуда: Chisinau, Moldova

Re: Капча

Сообщение vova07 »

Код: Выделить всё

$form.yiiCaptcha('refresh'); 
lego
Сообщения: 26
Зарегистрирован: 2014.04.16, 15:22

Re: Капча

Сообщение lego »

vova07 писал(а):

Код: Выделить всё

$form.yiiCaptcha('refresh');
Большая вероятность что я делаю что то не правильно,не срабатывает(
Аватара пользователя
vova07
Сообщения: 1004
Зарегистрирован: 2012.11.29, 14:52
Откуда: Chisinau, Moldova

Re: Капча

Сообщение vova07 »

Код: Выделить всё

jQuery('#my-form-id').yiiCaptcha('refresh');
Хотя если вы прописали предыдущий код в "beforeSubmit" то все должно сработать. Основной момент тут метод "refresh".
Аватара пользователя
desc
Сообщения: 58
Зарегистрирован: 2014.02.27, 18:28

Re: Капча

Сообщение desc »

Может мне подскажите по капче, не отображается. Подозреваю что из-за правил в урл менеджере
Решил записи выводить по alias (link)
в урл менеджере сделал такое правило 'post/<link:>' => 'post/view',
все хорошо, но в комментах делаю капчу и она не выводится.
у капчи получается такая ссылка /post/captcha?v=5351729d8859a
Данная запись не найдена
подскажите как сделать правильно в моей ситуации
Аватара пользователя
vova07
Сообщения: 1004
Зарегистрирован: 2012.11.29, 14:52
Откуда: Chisinau, Moldova

Re: Капча

Сообщение vova07 »

Вам нужно указать "captchaAction" для самого виджета, и в самом контролере прописать экшэн для него.
По дуфолту "captchaAction = 'site/captcha'", по этому если у вас не модульная структура, указывать параметр для виджета не обязательно.
Аватара пользователя
samdark
Администратор
Сообщения: 9489
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: Капча

Сообщение samdark »

Ещё надо удостовериться, что доступ есть к captcha.
Аватара пользователя
desc
Сообщения: 58
Зарегистрирован: 2014.02.27, 18:28

Re: Капча

Сообщение desc »

в PostController есть public function actions() с капчей, все работает, и если убрать правило из урлменеджера 'post/<link:>' => 'post/view', то капча работает
у меня в контроллере проверка, если нет данной новости вот такой код

Код: Выделить всё

if($news == null)
			throw new CHttpException(404, 'Данная запись не найдена');
как мне подружить капчу и такое правило в менеджере'post/<link:\w+>' => 'post/view',, хочу новости выводить по alias а не по айди
lancedevnull
Сообщения: 1268
Зарегистрирован: 2013.07.17, 17:37

Re: Капча

Сообщение lancedevnull »

сделай капчу в другом контроллере или размести правило выше текущего:
post/captha => post/captha
Аватара пользователя
desc
Сообщения: 58
Зарегистрирован: 2014.02.27, 18:28

Re: Капча

Сообщение desc »

Вот спасибо,помогло. Всяко пробовал, а вот так не хватило ума или знаний
lego
Сообщения: 26
Зарегистрирован: 2014.04.16, 15:22

Re: Капча

Сообщение lego »

vova07 писал(а):

Код: Выделить всё

jQuery('#my-form-id').yiiCaptcha('refresh'); 
Хотя если вы прописали предыдущий код в "beforeSubmit" то все должно сработать. Основной момент тут метод "refresh".
Спасибо, сработало. Проблема была в том, что я вместо id капчи указал id activeform.
Ro7
Сообщения: 71
Зарегистрирован: 2013.08.17, 15:08

Re: Капча

Сообщение Ro7 »

И все-таки как капчу обновить?

Код: Выделить всё

TypeError: $(...).yiiCaptcha is not a function
Аватара пользователя
yiijeka
Сообщения: 3103
Зарегистрирован: 2012.01.28, 09:14
Откуда: Беларусь
Контактная информация:

Re: Капча

Сообщение yiijeka »

Код: Выделить всё

jQuery('#id-image-captcha').yiiCaptcha('refresh') 
Ro7
Сообщения: 71
Зарегистрирован: 2013.08.17, 15:08

Re: Капча

Сообщение Ro7 »

yiijeka писал(а):

Код: Выделить всё

jQuery('#id-image-captcha').yiiCaptcha('refresh')
Вот я выше и написал, что он говорит: "yiiCaptcha is not a function"
Аватара пользователя
yiijeka
Сообщения: 3103
Зарегистрирован: 2012.01.28, 09:14
Откуда: Беларусь
Контактная информация:

Re: Капча

Сообщение yiijeka »

Значит она у вас не подключена, к этому элементу.
Ro7
Сообщения: 71
Зарегистрирован: 2013.08.17, 15:08

Re: Капча

Сообщение Ro7 »

Что я делаю не так?
Вложения
yii2.jpg
yii2.jpg (72.21 КБ) 6089 просмотров
yii1.jpg
yii1.jpg (181.38 КБ) 6089 просмотров
chesar
Сообщения: 514
Зарегистрирован: 2013.04.10, 17:49

Re: Капча

Сообщение chesar »

По какому адресу берется captcha?
Что с правами доступа к этому экшену?
Ro7
Сообщения: 71
Зарегистрирован: 2013.08.17, 15:08

Re: Капча

Сообщение Ro7 »

Капча работает, проверяется. Но функции yiiCaptcha в jquery - нет)
Все стандартно SiteController

Код: Выделить всё

    public function actions()
    {
        return [
            'error' => [
                'class' => 'yii\web\ErrorAction',
            ],
            'captcha' => [
                'class' => 'yii\captcha\CaptchaAction',
                'fixedVerifyCode' => YII_ENV_TEST ? 'testme' : null,
            ],
        ];
    } 

Код: Выделить всё

'registration/captcha' => 'site/captcha', 
Ответить