2017 © Pedro Peláez
 

library phalcon-captcha

The captcha extension of the Phalcon framework.

image

timur-flush/phalcon-captcha

The captcha extension of the Phalcon framework.

  • Monday, March 26, 2018
  • by TimurFlush
  • Repository
  • 0 Watchers
  • 1 Stars
  • 13 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 5 Versions
  • 18 % Grown

The README.md

Phalcon-Captcha

Phalcon-Captcha представляет собой удобную библиотеку для реализации капчи на Вашем сайте. Библиотека поддерживает как привычные изображения, так и Google Recaptcha 2., (*1)

Использование

После установки через Composer, пропишите в Вашем роутере следующее:, (*2)

$router = new \Phalcon\Mvc\Router(false);
$router->mount(new \TimurFlush\PhalconCaptcha\Routes\Captcha());

Теперь, по адресу http://your_site.com/captcha, будет находиться картинка с капчой., (*3)

Затем, создайте в контейнере зависимостей shared сервис с названием captcha, который должен будет возвращать Image либо Recaptcha адаптер, в противном случае будет вызвана ошибка., (*4)

$di->setShared('captcha', function(){
    /*
    //Создаём Recaptcha адаптер
    $adapter = new \TimurFlush\PhalconCaptcha\Adapter\Recaptcha([
        'publicKey' => 'your/public/key',
        'privateKey => 'your/private/key',
    ]);
    return $adapter;
    */

    //Создаём Image адаптер
    $adapter = new \TimurFlush\PhalconCaptcha\Adapter\Image();

    //ниже настройки по-умолчанию

    /* Установить длину картинки. (опционально) */
    $adapter->setWidth(150);

    /* Установить высоту картинки. (опционально) */
    $adapter->setHeight(40);

    /* Установить длину капчи 4 символа. (опционально) */
    $adapter->setLength(4);

    /* Установить размер шрифта 15 символов. (опционально) */
    $adapter->setFontSize(15);

    /* Установить RGBA цвет для шрифта. (опционально) */
    $adapter->setFontColor(0, 0, 0, 127); 

    /* Установить RGBA цвет для фона. (опционально) */
    $adapter->setBackgroundColor(0, 0, 0, 127);

    /* Разрешить цифры в картинке. (опционально) */
    $adapter->setAllowNumbers(true);

    /* Запретить буквы в картинке. (опционально) */
    $adapter->setAllowLetters(false);

    /* Запрещаем рандомный наклон букв. (опционально) */
    $adapter->setRandomAngle(false);

    return $adapter;
});

После регистрации адаптера в контейнере, добавьте в свою форму следующий элемент:, (*5)

addValidator(
            new \TimurFlush\PhalconCaptcha\CaptchaValidator(
                'message' => 'Неверная капча.',
                //cancelOnFail прописан уже за вас.
            )
        );
    }
}

```
В контроллере проверка должна идти по-стандарту через метод формы isValid()
```
request->isPost()){
            do{
                if (!$form->isValid($this->request->getPost()){
                    foreach($form->getMessages() as $messages)
                        echo $message->getMessage(); //вывод ошибок из формы если они есть
                    break;
                }
            }while(false);
        }
            $this->view->form = $form;
            echo $this->view->render('login.html');
    }
}
```
И уже в шаблоне, Вы определяете логику отображения.
```
captcha->getAdapterName() === 'Image' ): ?>
    <!-- Вывод изображения с кастомизацией -->
    <?php echo $this->captcha->getImage([
        'width' => 180, //ширина изображения в пикселях (опционально)
        'height' => 50, //высота изображения в пикселях (опционально)
        'font_size' => 15, //размер шрифта (опционально)
        'font' => [ //настройка цвета шрифта (опционально)
            'R' => 0, //красный (обязательно)
            'G' => 0, //зеленый (обязательно)
            'B' => 0, //синий (обязательно)
            'A' => 0 //альфа канал (опционально)
        ],
        'bg' => [ //настройка цвета фона (опционально)
            'R' => 0, //красный (обязательно)
            'G' => 0, //зеленый (обязательно)
            'B' => 0, //синий (обязательно)
            'A' => 0 //альфа канал (опционально)
        ]
    ]); ?>

    <!-- обычный вывод изображения -->
    <?php echo $this->captcha->getImage(); ?>

    <br>
    <!-- вывод текстового поля -->
    <?php echo $this->form->render('captcha', [
        'placeholder' => 'Введите цифры с картинки
    ']); ?>
captcha->getAdapterName() === 'Recaptcha' ): ?>
    <!-- отобразит тёмный Recaptcha Widget -->
    <?php echo $this->form->render('captcha', [
        'theme' => 'dark'
    ']); ?> 

Требования

Phalcon ^3.3.0, (*6)

PHP ^7.2.0, (*7)

cURL, mbstring, (*8)

Автор

Timur Flush, (*9)

Telegram: @flush02, (*10)

Лицензия

Apache 2.0 License, (*11)

The Versions

26/03 2018

dev-master

9999999-dev

The captcha extension of the Phalcon framework.

  Sources   Download

Apache-2.0 BSD-3-Clause

The Requires

  • php ^7.2.0
  • ext-phalcon ^3.3.0
  • ext-gd *

 

by flush02

26/03 2018

1.0.3

1.0.3.0

The captcha extension of the Phalcon framework.

  Sources   Download

BSD-3-Clause

The Requires

  • php ^7.2.0
  • ext-phalcon ^3.3.0
  • ext-gd *

 

by flush02

02/03 2018

v1.0.2

1.0.2.0

The captcha extension of the Phalcon framework.

  Sources   Download

Apache-2.0

The Requires

  • php ^7.2.0
  • ext-phalcon ^3.3.0
  • ext-gd *

 

by flush02

28/02 2018

v1.0.1

1.0.1.0

The captcha extension of the Phalcon framework.

  Sources   Download

Apache-2.0

The Requires

  • php ^7.2.0
  • ext-phalcon ^3.3.0
  • ext-gd *

 

by flush02

28/02 2018

v1.0.0

1.0.0.0

The captcha extension of the Phalcon framework.

  Sources   Download

Apache-2.0

The Requires

  • php ^7.2.0
  • ext-phalcon ^3.3.0
  • ext-gd *

 

by flush02