Beranda · Contact Us · Downloads

Yii: Menampilkan Google Captcha (reCAPTCHA)

Pada artikel kali ini saya akan membahas sedikit tentang bagaimana menggunakan google captcha (reCAPTCHA) di aplikasi web yii. Dengan bantuan extensions recaptcha kita hanya perlu melakukan sedikit perubahan/penambahan kode untuk menggunakannya.

Silahkan download file extensions recaptcha terlebih dahulu dengan klik download, kemudian ekstrak file tersebut di folder /protected/extensions.

Berikutnya adalah melakukan registrasi ke http://recaptcha.net/ untuk mendapatkan Site key dan Secret key. Site key digunakan untuk menyajikan ke user, sedangkan Secret key digunakan untuk komunikasi antara aplikasi dan google.

Untuk menggunakannya silahkan lakukan perubahan di model, view, serta controller :

1. Model, definisikan attribut beserta rulenya :
//protected/models/LoginForm.php
class LoginForm extends CFormModel
{
    public $validasi;
........

public function rules(){
  return array(           
    array('validasi',
    'application.extensions.recaptcha.EReCaptchaValidator',
    'privatekey'=>'<--masukkan Secret Key di sini-->'),

    array('validasi',
    'application.extensions.recaptcha.EReCaptchaValidator',
    'privatekey'=>'
ENVII_CAPTCHA_PRIVATE_KEY',
    'on'=>'registerwcaptcha'),

    ......
  );
}
 2. View
<?php
$this->widget('application.extensions.recaptcha.EReCaptcha',
   array('model'=>$model, 'attribute'=>'validasi',
      'theme'=>'red', 'language'=>'en',
      'publickey'=>'<--masukkan Site Key di sini-->')); ?>
 <?php echo Chtml::error($model,'validasi'); ?>
3. Controller
public function actionRegister()
    {
        $form = new user();
        $form->scenario = 'registerwcaptcha';
        if($form->validate())
        {
            $form->scenario=NULL;
            $form->save();
        }
    }

Untuk melihat hasilnya pastikan komputer Anda terhubung dengan internet. Koneksi internet tersebut dibutuhkan untuk komunikasi antara aplikasi dan google.




Good Luck!


Artikel keren lainnya:

1 Tanggapan untuk "Yii: Menampilkan Google Captcha (reCAPTCHA)"