Membuat Captcha dalam CodeIgniter

Captcha

Adalah tulisan bergambar yang digunakan untuk menghindari adanya spam.

Contoh:

Saya ingin membuat form seperti dibawah ini:

Pertanyaan:

Bagaimana cara membuatnya … ?

Jawaban:

Membuat Tabel

CREATE TABLE captcha (

captcha_id bigint(13) unsigned NOT NULL auto_increment,

captcha_time int(10) unsigned NOT NULL,

ip_address varchar(16) default ‘0’ NOT NULL,

word varchar(20) NOT NULL,

PRIMARY KEY `captcha_id` (`captcha_id`),

KEY `word` (`word`)

)

Membuat Folder

Buatlah satu buah folder bernama captcha untuk menyimpan gambar captcha dan letakkan di base_urlmu seperti terlihat pada gambar dibawah ini:

Membuat Controller

Saya membuat sebuah fungsi bernama tampilkategori seperti dibawah ini:

class kategori extends CI_Controller {

public function tampilkategori()
{
$this->load->plugin(‘captcha’);
$vals = array(
‘word’ => ”,
‘img_path’ => ‘./captcha/’,
‘img_url’ => ‘http://localhost/ibook/captcha/’,
‘font_path’ => ‘./system/fonts/arial.ttf’,
‘img_width’ => ‘150’,
‘img_height’ => 30,
‘expiration’ => 7200
);
$cap = create_captcha($vals);
$data = array(
‘captcha_id’ => ”,
‘captcha_time’ => $cap[‘time’],
‘ip_address’ => $this->input->ip_address(),
‘word’ => $cap[‘word’]
);
$query = $this->db->insert_string(‘captcha’, $data);
$this->db->query($query);
$isi[‘image’]=$cap[‘image’];
$this->load->view(‘kategori’,$isi);
}
}
Keterangan:
  • ‘img_path’ => ‘./captcha/’, kode ini digunakan untuk menuju ke folder captcha
  • ‘img_url’ => ‘http://localhost/ibook/captcha/’, kode ini juga menuju ke folder captcha
  • ‘font_path’ => ‘./system/fonts/arial.ttf’, untuk font maka kamu ambil dari font windows dan copykan ke direktori system/fonts, pada contoh ini saya menggunakan arial.

Membuat File View

<?php

echo form_open(“kategori/simpankategori”);?>

<table align=”center” width=”250″ border=”0″>

<?php

echo ‘<tr><td  width=”100%” align=”center”>’.$image.'</td>’;

echo ‘<tr><td  style=”font-size:12px”>Masukkan kata yang terdapat pada gambar diatas:</td></tr><tr>’;

echo ‘<td align=”center”><input type=”text” name=”captcha” value=”” /></td></tr>’;

?>

<tr>

<td  align=”center”><input type=”submit” name=”Submit” value=”Simpan” /></td>

</tr>

</table>

</form>

Membuat Fungsi simpankategori

Buatlah satu fungsi simpankategori dalam Controller Kategori dengan kode seperti dibawah ini:

function simpankategori()

{

$expiration = time()-7200;

$this->db->query(“DELETE FROM captcha WHERE captcha_time < “.$expiration);

$sql = “SELECT COUNT(*) AS count FROM captcha WHERE word = ? AND ip_address = ? AND captcha_time > ?”;

$binds = array($_POST[‘captcha’], $this->input->ip_address(), $expiration);

$query = $this->db->query($sql, $binds);

$row = $query->row();

if ($row->count == 0)

{

echo “Kamu harus menuliskan kata yang ada pada gambar dengan benar”;

}

}

Sumber:

Tulisan ini bersumber dari dokumentasi yang terdapat pada file captcha_pi

Jika tutorial ini bermanfaat silahkan katakan ‘Terima Kasih Fahmi Basya Kartapura’.

You may also like...

2 Responses

  1. juliyanto says:

    “Undefined variable: image” di view nya mas.
    error dimana ya?

  2. Fahmi Basya Kartapura says:

    Coba kirim skripmu ke email saya : fahmibasya@gmail.com

Leave a Reply

Your email address will not be published. Required fields are marked *