Я пытаюсь добавить captcha к форме входа.Как добавить капчу в приложение Yii-2?
Моя среда:
- Yii 2
- PHP 5.4.45 TS
- IIS 10.0
- Окна 10
В login.php
, LoginForm.php
и SiteController.php
я добавил следующее (показаны только соответствующие детали):
бэкенд \ Views \ сайт \ login.php:
use yii\captcha\Captcha;
...
<?= $form->field($model, 'captcha')->widget(Captcha::className()) ?>
...
общие \ модели \ LoginForm.php:
...
public $captcha;
...
public function rules()
{
return [
...
[['username', 'password', 'captcha'], 'required'],
['captcha', 'captcha'],
];
}
бэкенд \ Контроллеры \ SiteController.php:
public function actions()
{
return [
...
'captcha' => [
'class' => 'yii\captcha\CaptchaAction',
// 'fixedVerifyCode' => YII_ENV_TEST ? 'testme' : null,
],
];
}
I загружены и установлены ImageMagick-7.0.2-Q16
Как описано here Скачайте php_imagick-3.4.1-5.4-ts-vc9-x86.zip и вытащите php_imagick.dll оттуда. Затем добавляют php_imagick.dll в /php/ext/
В php.ini
я добавил следующее:
...
[PHP_IMAGICK]
extension=php_imagick.dll
...
Затем перезапустить IIS, но расшифрованы не отображается, и я вижу следующее в журналах:
2016-08-10 07:28:21 [127.0.0.1][-][h1a65krn8scqc9auk56flmesi6][error][yii\base\InvalidConfigException] exception 'yii\base\InvalidConfigException' with message 'Either GD PHP extension with FreeType support or ImageMagick PHP extension with PNG support is required.' in C:\projects\aisnew\vendor\yiisoft\yii2\captcha\Captcha.php:180
После перезапуска операционной системы:
2016-08-10 07:01:22 [127.0.0.1][-][h1a65krn8scqc9auk56flmesi6][error][yii\base\ErrorException:32] exception 'yii\base\ErrorException' with message 'PHP Startup: ' in Unknown:0
Я где-то читал, что самая последняя версия работает в Windows 10, но для этого необходимо установить распространяемый пакет Visual C++ 2013. Я проверил, что этот пакет установлен.
Как добавить капчу в приложение Yii-2? Я пробовал разные комбинации ImageMagick и php_imagick.dll, но ничего не работает.
Я был бы очень признателен за информацию. Спасибо всем.
Если вы открыты для альтернативных решений, взгляните на https://www.google.com/recaptcha/intro/index.html – Jason
Большое спасибо за ваш быстрый комментарий! Да, я открыт для альтернативных решений. Я попробую. –
Отлично работает, спасибо @ Джейсон. Мне это очень понравилось, я оставляю это решение на производстве. Также оставляйте этот вопрос открытым, я хочу знать, как это сделать, используя воображаемый. –