DbHelp.ru
Маленький Yii блог
Комментарии
Гость: комент
Гость: wahaha
zolter: Друпал на Yii? ))
nastia: http://drupal.org/
JB: Да там просто ад)) мне всего 3 значения нужно чтобы выпадало, все равно спасибо)...



Сервер 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 пишу позже всех т.к. мой интернет провайдер решил что на майских празниках я ... "Релиз Yii framework 1.1.2"

  2. Вы устали в ручную заполнять поля creted/modify в вашей таблице? Вам надоелио постоянно присваивать значения текущей даты при вставке/редактированию записи? ... "AutoTimestampBehavior"

  3. Если честно я немного подглядел список изменений которые уже были сделаны и решил опубликовать их для вас. Скорее всего изменения ... "Что нас ждет в 1.0.6?"

[guest] untitled

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

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

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

[adm] zolter

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

Сенк!

[guest] Гость

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

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

[adm] zolter

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

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

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

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

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

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


Код:
Имя: