Инструменты пользователя

Инструменты сайта


Боковая панель

Связь

captcha

Модуль Captcha

Homepage: kohana-captcha

Подключение модуль Captcha к Kohana версии 3.3.0.

  • Подключаем в bootstrap.php:
    'captcha'  => MODPATH . 'captcha', //Captcha
  • Копируем файл настроек captcha.php в application/config.
  • С переходом Кohana 3.3 на PSR-0 нужно все файлы с классами переименовать с большой буквы иначе классы не будут найдены. Также нужно будет переименовать вызываемые классы в модуле Captcha, например вызываемые классы Text, URL и т.д..
  • Считываем настройки и создаем объект Captcha в нужном нам контроллере
            $config = Kohana::$config->load('captcha');
            $captcha = Captcha::instance();
            $captcha_img = $captcha->render();
            // Выводим в шаблон
            $this->template->content = $captcha_img
  • В классе изменяем функцию function image_render($html)
    		// Send the correct HTTP header
    //Request::instance()->headers['Content-Type'] = 'image/'.$this->image_type;
    //Request::instance()->headers['Cache-Control'] = 'no-store, no-cache, must-revalidate,
    //post-check=0, pre-check=0';
    //Request::instance()->headers['Pragma'] = 'no-cache';
    //Request::instance()->headers['Connection'] = 'close';
    Request::current()->headers('Content-Type', 'image/'.$this->image_type);
    Request::current()->headers('Cache-Control', 'no-store, no-cache,
    must-revalidate, post-check=0, pre-check=0');
    Request::current()->headers('Pragma', 'no-cache');
    Request::current()->headers('Connection', 'close');
  • View для captcha
    <?= Form::open('register') ?>
    <table>
        <tr>
            <td><?= $captcha_img ?></td>
            <td><?= Form::input('captcha') ?></td>
        </tr>
        <tr>
            <td colspan="2" align="center"><?= Form::submit('submit', 'Зарегистрироваться') ?></td>
        </tr>
    </table>
    <?= Form::close() ?>
  • Проверка правильности введенной captcha
            if (isset($_POST['submit'])) {
    $data = Arr::extract($_POST, array('username', 'password',
    'password_confirm', 'email', 'captcha'));
    if (Captcha::valid($data['captcha'])) {
                ....



captcha.txt · Последние изменения: 2013/02/01 15:04 (внешнее изменение)