DbHelp.ru
Маленький Yii блог
Комментарии
Гость: http://proline.physics.iisc.ernet.in/wiki/index.php/User:JanetX2524133736 http://proline.physics.iis...
Гость: http://historical-guide.eu/components/com_joomlawiki/index.php?title=%D0%A1%D1%83%D0%BB%D1%82%D0%B0%...
Гость: http://www.realstatecoin.org/index.php?title=User:VaniaDempster http://www.realstatecoin.org/index.p...
Гость: Если Вы являетесь истинным ценителем чая и хотите имет...
Гость: Каждый человек, что чем-то занимается имеет уникальный...



Сервер 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. Мы постоянно совершенствуем свои приложения позволяя пользователям загружать свои документы, аватарки и др. Хочешь упростить все эти функции? Читай обзор ... "Обзор дополнения CFile"

  2. ... "Версия 1.0.8"

  3. Я знаю что многие люди в связи с плохим пониманием английского языка не сидят на англоязычном форуме по yii ... "Yii Логотипы"

[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>

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


Код:
Имя: