Overblog Suivre ce blog
Editer l'article Administration Créer mon blog

Utiliser la class Ccpatcha de yii

par Morgan

publié dans YiiFramwork

Dans ce tutoriel je vais vous apprendre comment utiliser la class Ccaptcha afin d'ajouter un captcha à votre formulaire.

 

Tout d'abord dans votre model vous devez ajouter :

 

 -   public $verifyCode;

 

-Dans votre fonction rules : 

  array('verifyCode', 'captcha', 'allowEmpty'=>!extension_loaded('gd')),

 

- Dans votre fonction attributeLabels :

  'verifyCode'=>'Code de verification',

Ce qui nous donne :



<?php
class user extends CActiveRecord
{
public $verifyCode;
[...]

public function rules()
{
// NOTE: you should only define rules for those attributes that
// will receive user inputs.
return array(
array
('verifyCode', 'captcha', 'allowEmpty'=>!extension_loaded('gd')),
[...]

public function attributeLabels()
{
return array(
'verifyCode'=>'Code de verification',

[...]
?>


Dans votre controller vous devez ajouter :

public function actions()
{
return array(
'captcha'=>array(
'class'=>'CCaptchaAction',
'backColor'=>0xEBF4FB,
),
);
}


et ajouter la permision dans votre accesRules

Ce qui nous donne :

<?php

[...]
public function accessRules()
{
return array(
array('allow', // allow all users to perform 'index' and 'view' and captcha actions
'actions'=>array('index','view','captcha'),
'users'=>array('*'),
[...]
public function actions()
{
return array(
'captcha'=>array(
'class'=>'CCaptchaAction',
'backColor'=>0xEBF4FB,
),
);
}
[...]

?>


Et dans votre _form


<?php if(extension_loaded('gd')): ?>
<div class="row">
<?php echo $form->labelEx($model,'verifyCode'); ?>
<div>
<?php $this->widget('CCaptcha'); ?>
<?php echo $form->textField($model,'verifyCode'); ?>
</div>
<div class="hint">Veuillez retapez les lettres que vous voyer sur l'image.
<br/>Les caractères ne sont pas sensible à la case.</div>
</div>
<?php endif; ?>

Commenter cet article