Yii имеет встроенный класс для генерации и валидации капчи, что достаточно удобно.
Давайте рассмотрим как можно настроить цвет, фон капчи под себя.
Сначала всё стандартно, подключаем action в контроллере:
'captcha' => array(
'class' => 'CCaptchaAction',
),
В модели прописываем валидацию:
return array(
array('name, email, subject, body', 'required'),
array('verifyCode', 'captcha', 'allowEmpty'=>!CCaptcha::checkRequirements()),
);
Мы прописали что капча verifyCode будет валидироваться когда CCaptcha::checkRequirements()==true.
Капча выглядет стандартно, сделаем разного цвета буквы и фон.
Обновим:
'captcha' => array(
'class' => 'CCaptchaAction',
'backColor' => 0x444444,
'foreColor'=>0xffffff,
),
backColor — цвет фона
foreColor — цвет текста.
Нужно знать особенность работы капчи — она обновляется только когда вы её введёте неверно.
Если нажимать F5 вы будете видеть всегда одну и ту же картинку.
Чтобы сделать автообновление добавим в теле action контроллера:
$this->createAction('captcha')->getVerifyCode(true);
Теперь капча будет каждый раз новой.