DbHelp.ru
Маленький Yii блог
Комментарии
Гость: generic brand for viagra, name brand viagra buy cheap brand viagra, brand viagra https://brandvi...
Гость: brand viagra online - generic brand for viagra brand viagra vs generic viagra, name brand viagra ...
Гость: http://yandex.ru/collections/card/5ba403c74f59ff00c3ca55dc/ http://yandex.ru/collections/card/5ba3e...
Гость: navigate to this site [url=http://bac2012.tk/]more help[/url] continued [url=http://fogroup.ru/]re...
Гость: turning stone casino doubledown casino promo codes mohegan sun casino caesars casino online | https:...



Сервер Ultima Online - Forest Wars (от создателя данного блога)

Усложняем стандартную капчу, при помощи reCaptcha

Рубрика: Работаем с капчей (captcha)

Оцените эту статью:

Рейтинг: 0.00 (0)
14 Окт. 2009
Опубликовать в Twitter Написать в Facebook Опубликовать в своем блоге livejournal.com

Yii Framework Blog img http://dbhelp.rusmallCaptchaSpaceWithRoughAlpha Вас смущает капча на вашем сайте? Так давайте сделаем её сложнее... В этом уроке мы поговорим про интеграцию с сервисом recaptcha. Вы наверняка встречались с этой большой красной капчей на многих забугровых сайтах...

---

Про то как переделывать капчу, я писал уже не раз:

  1. Математическая капча
  2. Как на Yii капче выводить цифры
  3. Настройка 3d капчи на Yii

...и много другого в разделе «Работа с капчей»

Сегодняшний обзор не будет моим собственным творением, а лишь описание одного из расширений для Yii. Оно скачено уже больше чем 300 раз, и поэтому заслужило моего небольшого внимания :)

  1. Первым делом нам надо зайти на сайт http://recaptcha.net/ и зарегистрироваться там.
  2. После чего мы сможем получить «public and private keys» для интеграции на нашем сайте
  3. Теперь заходим на страницу расширения recaptcha в раздел «Downloads» и загружаем к себе последнюю версию.
  4. Распаковать архив необходимо в папку protected/extensions, вашего Yii приложения. Так что бы у вас получилась структура:
    protected/
        extensions/
            recaptcha/
                 reCAPTCHA
                 EReCaptchaValidator.php
                 EreCaptcha.php
    
  5. В файле отображения где хотим подключить новую капчу:
    <?php echo CHtml::activeLabel($user, 'validacion'); ?>
    <?php $this->widget('application.extensions.recaptcha.EReCaptcha',
       array('model'=>$user, 'attribute'=>'validacion',
             'theme'=>'red', 'language'=>'es_ES',
             'publicKey'=>'<your public key>')) ?>
    <?php echo CHtml::error($user, 'validacion'); ?>
  6. В файле Модели (если вы не используете ActiveRecord):
    <?php
    class UserModel extends CFormModel
    {
       public $validacion;
     
       public function rules()
       {
          return array(
             array('validacion',
                   'application.extensions.recaptcha.EReCaptchaValidator',
                   'privateKey'=>'<your private key>'),
          );
       }
     
       public function attributeLabels()
       {
          return array(
             'validacion'=>Yii::t('demo', 'Enter both words separated by a space: '),
          );
       }
    }

Все. Обновляйте страничку и смотрите.

П.С. Если вы используете ActiveRecord, то последний пункт будет выглядеть несколько иначе:

  1. В rules вы добавляете новое правило:
    public function rules()
    {
    return array(
    ...
    array(
    'validacion',
    'application.extensions.recaptcha.EReCaptchaValidator',
    'privateKey'=> ENVII_CAPTCHA_PRIVATE_KEY,
    'on' => 'registerwcaptcha'
    ),
    ...
    );
    }
  2. В контроллере делаете что то вроде этого:
    public function actionRegister()
    {
    $form = new User();

    $form->scenario = 'registerwcaptcha';
    ...
    if($form->validate())
    {
    // and here is the actual HACKY part
    $form->scenario = NULL;

    // save user registration
    $form->save();
    }
    }

Пользуемся!



Если хотите опубликовать этот материал у себя - пожалуйста, разместите ссылку на страницу откуда вы его взяли.
Другие yii статьи:

  1. С Yii вы можете очень просто создавать ajax запросы. В большинстве случаев во время выполнения запроса, для наглядности, стоит ... "Как добавить ajax preloader"

  2. Наиболее легкий способ обновления содержимого через Ajax, это использование метода partialRender(). Давайте научимся им пользоваться! next     Для этого примера у меня есть ... "Обновление содержимого через AJAX используя renderPartial()"

  3. Столкнулся с проблемой кодировки при использовании mail() функции в php. Для меня было очень странным что тело письма приходит в ... "Проблемы с кодировкой в теме письма"

[guest] untitled

Было сказано: Вторник, 16 Март 2010

>П.С. Если вы используете ActiveRecord, то последний пункт будет выглядеть несколько иначе:

тут вроде исходники кодов местами перепутаны :)

[adm] zolter

Было сказано: Вторник, 16 Март 2010

Сенк!

[guest] Гость

Было сказано: Воскресенье, 08 Август 2010

На моём сайте рекапчу поаставил, а толку никакого... Обходят как-то...

[adm] zolter

Было сказано: Среда, 11 Август 2010

Попробуйте мою математическую. Думаю поможет

[guest] Александр

Было сказано: Четверг, 30 Июнь 2011

дык антигейт капча сводит все усилия на нет)) 1000 разгадываний за 1бакс всего))

[guest] Гость

Было сказано: Вторник, 19 Июнь 2012

подскажите пожалуйста!! допустим на странице есть блок с капчей, под ней есть баттон на actionRegister , но не могу понять, как он заберет нежные данные (пост) если в контроллере создается объект модели и к ней делается валидейт ?

[guest] Гость

Было сказано: Среда, 20 Июнь 2012

Cамый радикальный метод- подключить Akismet. Неплохо бы статейку про него :)

[guest] Makc

Было сказано: Воскресенье, 07 Июль 2013

Там всё довольно просто - виджету reCAPTCHA в отображении передаём модель и её свойство в котором будет хранится введённый юзером текст:

 'attribute'=>'validacion'

Также в модели определяем правило валидации для этого свойства:
array('validacion',  'application.extensions.recaptcha.EReCaptchaValidator', 'privateKey'=>'<your private key>')

Теперь за валидацию капчи отвечает EReCaptchaValidator.
При сабмите в экшене присваем модели пришедшие данные:
$model->attributes = $_POST['CaptchaFormId']

Теперь при валидации модели заполненные свойства пройдут проверку, например, каптчу проверит EReCaptchaValidator, ну и соответственно вернётся true или false.

[guest] Гость

Было сказано: Среда, 01 Апрель 2015

А если две капчи (в двух формах) на странице должны быть, как настроить? Вторая не отображается...

[guest] Гость

Было сказано: Среда, 15 Февраль 2017

http://female-viagra.pw female pink viagra

[guest] Гость

Было сказано: Четверг, 16 Февраль 2017

w http://buy-viagra.men how often can you take viagra http://viagrarx.review cheapest viagra world http://viaph01.com pfizer viagra uk http://buyviagra.pw cheap viagra pills uk http://viagraon.top free viagra canada

[guest] Гость

Было сказано: Суббота, 18 Февраль 2017

p http://via03.com viagra strengths http://via24ph.com viagra womens http://vvv01.review is generic viagra real http://viagraon.top pfizer viagra price http://generic-viagra.click viagra alternative and woman

[guest] Гость

Было сказано: Понедельник, 20 Февраль 2017

d http://viagrapharmacy.review buy viagra tablets http://viadr01.top viagra sales in canada http://sildenafil.review buying viagra prescription http://via24ph.com over the counter viagra http://buy-viagra.men does viagra work

[guest] Гость

Было сказано: Вторник, 21 Февраль 2017

viagra online pharmacy http://pharmacycanada.review , http://canadapharm365.top , http://cph01.top , http://canadianpharmacyon.link , http://canp01.bid ,

[guest] Гость

Было сказано: Среда, 22 Февраль 2017

Good site http://viagrarx.top ; http://viagrarx.party ; http://buygenericrx.men ; http://via01.biz ; http://viaph01.com

[guest] Гость

Было сказано: Воскресенье, 26 Февраль 2017

ab8126qc9704ik3265 <a href=" http://viagraon.click ">where to buy viagra over the counter</a>

[guest] Гость

Было сказано: Понедельник, 27 Февраль 2017

gj4048nj3397mi2793 http://cytotecon.review purchase cytotec

[guest] joomla

Было сказано: Суббота, 20 Январь 2018

Если нужно обновить на joomla 2.5 google recaptcha до версии 2, то вам сюда http://recaptcha-v2.seochebspec.ru/

[guest] Гость

Было сказано: Среда, 14 Февраль 2018

Проблемы на финансовом рынке?
- http://bit.ly/2pJ9LnO
Выдача кредита онлайн на карту за 15 мин. Заказать здесь: http://bit.ly/2CqMXQW - МФО Vivus

*money**

[guest] Гость

Было сказано: Воскресенье, 18 Февраль 2018

Проблемы на финансовом рынке?
- http://bit.ly/2pJ9LnO
Получение займа онлайн на карту за 20 минут. Заказать здесь: http://bit.ly/2oQUzUu - Без справок, без посещений офиса

*money**

[guest] Гость

Было сказано: Суббота, 07 Апрель 2018

Вы зависли на Youtube, просматривая клипы новинки? Очень хотелось бы посмотреть клипы бесплатно, но не встречаете стоящие внимания и времени клипы в хорошем качестве среди множества песен со всего мира? Это не пробоема! На ресурсе mobileyell.info есть возможность слушать клипы, которые точно берут за душу и балуют уши меломана! Мы размещаем новые клипы регулярно, следя за звездами музыкального Олимпа и просматривая самые интересные каналы. Здесь можно просматривать клипы группы, которую ранее не встречали, но именно такие работы достойны внимания ценителя. И конечно, вы сможете смотреть клип бесплатно в хорошем качестве, с хорошим звучанием. Отдельно хочется заметить, что иностранные клипы на сайте – это только что-то очень яркое, а не очередной хит-однодневка. Груп тысячи, а настоящих талантов от Бога по всему миру на самом деле мало. Чтобы быть "в теме", мы даем возможность также смотреть русские клипы 2017 и новинки текущего года. Отслеживайте обновления на сайте: музыка, видео, интересные записи, кино и не только.
Мужчина и женщина: <a href=http://mobileyell.info>клип песни</a>

[guest] Гость

Было сказано: Среда, 11 Апрель 2018

Вы просиживаете часами на Youtube, изучая клипы онлайн? Очень хотелось бы посмотреть клипы бесплатно, но не находите стоящие внимания и времени новые клипы среди множества песен исполнителей разных стран? Есть решение! На страницах mobileyell.info можно слушать клипы, которые действительно берут за душу и радуют слух! Мы отискиваем для вас новые клипы постоянно, следя за звездами музыкального Олимпа и просматривая самые интересные каналы. Здесь вы можете найти клипы группы, которую ранее не встречали, но именно такие работы заслуживают внимания меломана. И конечно, вы будете смотреть клип бесплатно в нормальном качестве, с хорошим звучанием. Отдельно следует заметить, что зарубежные клипы на сайте – это реально что-то очень яркое, а не очередной "хит" одного дня. Исполнителей тысячи, а настоящих талантов среди них на самом деле мало. Чтобы быть "в теме", мы предлагаем также слушать русские клипы 2017 и новинки текущего года. Отслеживайте обновления на сайте: музыка, видео, интересные записи, кино и не только.
Смех - <a href=http://mobileyell.info>музыка онлайн</a>

Оставить комментарий


Код:
Имя: