J'essaie d'ajouter le captcha au formulaire de connexion.Comment ajouter captcha dans l'application Yii-2?
Mon environnement:
- 2 Yii
- php 5.4.45 TS
- IIS 10.0
- de Windows 10
En login.php
, LoginForm.php
et je SiteController.php
ajouté ce qui suit (montré seulement les parties pertinentes):
back-end \ vues \ Site \ login.php:
use yii\captcha\Captcha;
...
<?= $form->field($model, 'captcha')->widget(Captcha::className()) ?>
...
modèles communs \ \ LoginForm.php:
...
public $captcha;
...
public function rules()
{
return [
...
[['username', 'password', 'captcha'], 'required'],
['captcha', 'captcha'],
];
}
back-end contrôleurs \ \ SiteController.php:
public function actions()
{
return [
...
'captcha' => [
'class' => 'yii\captcha\CaptchaAction',
// 'fixedVerifyCode' => YII_ENV_TEST ? 'testme' : null,
],
];
}
I avoir téléchargé et installé ImageMagick-7.0.2-Q16
Comme décrit here J'ai téléchargé php_imagick-3.4.1-5.4-ts-vc9-x86.zip et extrait php_imagick.dll à partir de là. On ajoute ensuite php_imagick.dll dans /php/ext/
Dans php.ini
j'ajouté ce qui suit:
...
[PHP_IMAGICK]
extension=php_imagick.dll
...
Ensuite, redémarrez IIS, mais captcha n'apparaît pas et je vois ce qui suit dans les journaux:
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
Après avoir redémarré le système d'exploitation:
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
J'ai lu quelque part que la version la plus récente fonctionne sous Windows 10 mais nécessite l'installation du paquet redistribuable Visual C++ 2013. J'ai vérifié que ce paquet est installé.
Comment ajouter captcha dans l'application Yii-2? J'ai essayé différentes combinaisons de ImageMagick et php_imagick.dll, mais rien ne fonctionne.
Je serais très reconnaissant pour l'information. Merci à tous.
Si vous êtes ouvert aux solutions alternatives, consultez https://www.google.com/recaptcha/intro/index.html – Jason
Merci beaucoup pour votre commentaire rapide! Oui, je suis ouvert à des solutions alternatives. Je vais l'essayer. –
Fonctionne parfaitement, merci @Jason. J'ai vraiment aimé, je laisse cette solution en production. Aussi laisser cette question ouverte, je veux savoir comment faire cela en utilisant imagic. –