Beranda > Codeigniter > Memasang Plug-In Captcha Pada Web Berbasis CodeIgniter

Memasang Plug-In Captcha Pada Web Berbasis CodeIgniter

Captcha yang mempunyai kepanjangan Completely Automated Public Turing test to tell Computers and Humans Apart adalah suatu metode pertahanan dari serangan spam yang kian merajalela saat ini. Captcha berisi kombinasi angka dan huruf yang umumnya sangat mudah dibaca oleh manusia, namun sangat sulit dibaca oleh mesin/komputer. Banyak di internet yang menyediakan plug-in captcha secara cuma-cuma, contohnya yang banyak dipakai ialah reCaptcha. Menurut pengalaman pribadi saya, reCaptcha sudah sangat aman untuk menghalau spam-spam yang dilancarkan para spammer. Namun kelemahannya, ialah saking amannya terkadang user sontoloyo seperti saya ini sangat sulit untuk membaca kombinasi angka dan huruf yang terdapat di dalamnya. Kasian user-nya kalau harus ‘dipermainkan’ oleh captcha :( . Maka dari itu, alangkah baiknya kalau kita membuat captcha sendiri. “Tapi males ach, ada cara yang setengah instan gak selain pakai reCaptcha dan tanpa harus membuat sendiri???”. Di dalam framework CodeIgniter sudah disediakan plug-in captcha yang cara pemakaiannya sangat mudah, anak SMP aja bisa lho. plug-in captcha ini berbentuk file helper jika menggunakan CodeIgniter 2.00 ke atas. Dan berbentuk file plugin jika menggunakan CodeIgniter 1.7.2 ke bawah. Nah, pada postingan kali ini saya akan menjelaskan sedikit tentang “Bagaimana sih caranya Memasang Plug-In Captcha Pada Web Berbasis CodeIgniter“.

1. Pada studi kasus kali ini, saya menggunakan CodeIgniter 2.0.0 dimana plug-in captcha-nya berbentuk file helper. Siapkan dulu file-file framework CodeIgniter di direktori htdocs.

2. Untuk menghemat waktu dan proses pengerjaan :D , disini saya hanya menggunakan file Controller saja, tanpa View dan Model. Karena helper captcha ini membutuhkan database (bukan session) untuk menyimpan kombinasi angka dan huruf-nya, maka kita buat dulu struktur table-nya seperti di bawah ini :

Silahkan cek file database di file yang bisa di-download pada akhir postingan ini.

3. Dalam konfigurasi captcha ini, dibutuhkan 2 buah function. Function yang pertama berfungsi untuk menghasilkan gambar captcha dan function yang satunya lagi berfungsi untuk melakukan validasi atas kode captcha yang diinputkan oleh user.

Function untuk menghasilkan gambar captcha

1 function gbr()
2 {
3     $vals = array(
4     'img_path' => './captcha/',
5     'img_url' => base_url().'captcha/',
6     'font_path' => './system/fonts/impact.ttf',
7     'img_width' => '200',
8     'img_height' => 60,
9     'expiration' => 90
10     );
11
12     $cap = create_captcha($vals);
13
14     $data = array(
15         'captcha_time' => $cap['time'],
16         'ip_address' => $this->input->ip_address(),
17         'word' => $cap['word']
18         );
19     $expiration = time()-90;
20     $this->db->query("DELETE FROM captcha WHERE captcha_time < ".$expiration);
21     $query = $this->db->insert_string('captcha', $data);
22     $this->db->query($query);
23     echo $cap['image'];
24 }

Function untuk melakukan validasi

1 function validasi()
2 {
3     $expiration = time()-90;
4     $this->db->query("DELETE FROM captcha WHERE captcha_time < ".$expiration);
5
6     $sql = "SELECT COUNT(*) AS count FROM captcha WHERE word = ? AND ip_address = ? AND captcha_time > ?";
7     $binds = array($_POST['captcha'], $this->input->ip_address(), $expiration);
8     $query = $this->db->query($sql, $binds);
9     $row = $query->row();
10
11     if ($row->count == 0)
12     {
13         echo "Kode Captcha yang anda masukkan tidak Valid...!!!";
14     }
15     else
16     {
17         echo "Selamat, Kode Captcha Benar...!!!";
18     }
19 }

4. Pada file index, kita tampilkan gambar captcha tersebut. Dan kita sisipkan sebuah form untuk mengirimkan kode captcha yang akan di validasi oleh mesin.

1 function index()
2 {
3     echo $this->gbr().'
4     <form method="post" action="'.base_url().'index.php/demo_captcha/validasi">
5     <input type="text" name="captcha" value="" /><input type="submit" value="Cek Captcha">
6     </form>';
7 }

Gampang kan konfigurasinya??? Captcha helper yang disediakan oleh CodeIgniter ini sudah lumayan ampuh untuk sekedar menghalau para spammer. Mungkin kekurangannya ialah, file gambarnya disimpan di dalam direktori hosting. Secara logika, ini akan memberatkan kinerja server. Namun, kita bisa mengatur batas expired dari gambar-gambar tersebut. OK deh, semoga tutorial ini bisa bermanfaat untuk rekan-rekan yang mungkin dibingungkan dengan pembuatan captcha.

Happy Blogging and Keep Coding

Cheerrrsss….!!!!

Download Aplikasi

 

source : http://gedelumbung.com/tutorial-codeigniter-memasang-plug-in-captcha-pada-web-berbasis-codeigniter/

Kategori:Codeigniter
  1. Belum ada komentar.
  1. No trackbacks yet.

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

%d blogger menyukai ini: