Membuat Captcha pada Login Form
Anyeong chingu :)
Kali ini saya akan sharing bagaimana membuat captcha pada
Form Login.
Step 1.
Kita buat di controllernya yaitu di
/protected/controllers/SiteController.php
public function accessRules()
{
return
array(
array('allow', // allow all users to perform 'index' and
'view' actions
'actions'=>array('captcha'),
'users'=>array('@'),
),
);
}
/* untuk fungsi yang di bawah ini, biasanya sudah ada di
SiteControllernya, tapi untuk kasus pendaftaran akun, fungsi ini perlu ditambahkan
pada controller yang bersangkutan (jadi nggak harus di SiteController aja) */
public function actions()
{
return
array(
//
captcha action renders the CAPTCHA image displayed on the contact page
'captcha'=>array(
'class'=>'CCaptchaAction',
'backColor'=>0xFFFFFF,
),
//
page action renders "static" pages stored under
'protected/views/site/pages'
//
They can be accessed via: index.php?r=site/page&view=FileName
'page'=>array(
'class'=>'CViewAction',
),
);
}
Step 2.
Selanjutnya kita atur di modelnya yaitu di
/protected/models/LoginForm.php
Yang perlu diperhatikan yaitu penambahan deklarasi nilai
public $verifyCode dan penambahan rule array('verifyCode', 'captcha',
'allowEmpty'=>!extension_loaded('gd')), untuk lebih jelasnya bisa dilihat
seperti source code di bawah.
class LoginForm extends CFormModel
{
public
$username;
public
$password;
public
$rememberMe;
public
$verifyCode; //ini yang perlu
ditambahkan
private
$_identity;
/**
* Declares the validation rules.
* The rules state that username and password
are required,
* and password needs to be authenticated.
*/
public
function rules()
{
return
array(
//
username and password are required
array('username,
password, verifyCode', 'required'),
//
rememberMe needs to be a boolean
array('rememberMe',
'boolean'),
//
password needs to be authenticated
array('password',
'authenticate'),
array('verifyCode',
'captcha', 'allowEmpty'=>!extension_loaded('gd')), //dan ini yang harus ditambahkan
);
}
Dan untuk coding selanjutnya sama, tidak ada perubahan
apapun.
Step 3.
Terakhir kita atur di view-nya yaitu di
/protected/views/site/login.php
Ingat !! Untuk yang menggunakan theme atau bootstrap atur
view-nya di theme-nya ya.
Nah di bawah ini adalah source code untuk menampilkan
captcha-nya ..
<?php if (extension_loaded('gd')): ?>
<div>
<?php echo
CHtml::activeLabelEx($model, 'Kode Verifikasi') ?>
<div>
<?php
echo $form->textField($model,'verifyCode', array('class'=>'input-small'));
?>
<?php
$this->widget('CCaptcha');?>
</div>
<div
class="hint">Ketik tulisan yang ada pada gambar.</div>
</div>
<?php endif;?>
Source code di atas bisa kamu letakkan setelah source
code username dan password, serta sebelum source code untuk menampilkan
button-nya.
Sekian dari saya, semoga bisa dimengerti dan semoga
bermanfaat :)
0 komentar:
Posting Komentar