Cara Membuat Captcha Sederhana dengan PHP


 Captcha adalah salah satu bentuk keamanan dalam sebuah website dimana seorang user diminta untuk memasukkan huruf-huruf yang diperlihatkan digambar. Tujuan dari digunakan captcha ini agar input data tidak dimasukkan oleh komputer atau robot, karena hanya robot tidak bisa membaca gambar maka keamanan sistem akan terjamin. Kali ini kita akan membuat captcha sederhana dengan PHP dimana huruf-huruf yang ditampilkan akan diacak oleh sistem. Tapi kita juga memerlukan sebuah gambar captcha terlihat semakin menarik. Langsung saja kita mulai, pertama silahkan copy script PHP berikut ini:

<?php
session_start();
$alphaNumeric = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
$random = substr(str_shuffle($alphaNumeric), 0, 5);
$image = imagecreatefromjpeg("captcha.png");
$textColor = imagecolorallocate ($image,62,38,11); //warna hitam
imagestring ($image, 5, 5, 8, $random, $textColor); 
$_SESSION['image_random_value'] = md5($random);
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); 
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); 
header("Cache-Control: no-store, no-cache, must-revalidate"); 
header("Cache-Control: post-check=0, pre-check=0", false); 
header("Pragma: no-cache");     
header('Content-type: image/jpeg');
imagejpeg($image);
imagedestroy($image);
?>


Simpan file diatas dengan nama captcha.php dalam sebuah folder. Untuk membuat captcha ini kita menggunakan session dalam PHP karena nantinya variabel captcha akan ditampung dalam sebuah session bernama 'image_random_value', maka untuk membuat session kita memerlukan kode session_start(). Kemudian ada variabel $alphaNumeric dimana isinya adalah huruf kapital beserta angka, nantinya huruf dan angka dari variabel ini akan diambil sebanyak lima buah dan diambil secara acak. Kita juga bisa menentukan warna tulisan dengan menggunakan fungis imagecolorallocate(). Selanjutnya, agar gambar terlihat semakin sulit dilihat, kita memerlukan sebuah background yang banyak bergaris. Kalian bisa menggunakan gambar berikut ini:


Atau kalian bisa juga menggunakan gambar lain yang ukuran tidak jauh berbeda dengan gambar diatas. Pastikan juga kalian meletakkan file gambar captcha.png tersebut pada direktori yang sama dengan file captcha.php. Atau jika terletak pada direktori berbeda, silahkan ubah script diatas dengan mengedit direktori pada variabel $image.

Nah, untuk memasang kode tersebut pada file HTML agar terlihat dibrowser. Silahkan copy script berikut ini:

<form action="tambah_pesan.php" method="post">
<input name="nama" type="text"/><br/>
<textarea name="pesan"></textarea><br/>
<img align="left" src="captcha.php"><br/>
<input type="text" name="captcha"><br/>
<input type="submit" value="Submit"/>
</form>


Kode html diatas nantinya akan diproses ke file php bernama tambah_pesan.php dan berikut ini adalah script untuk file tambah_pesan.php. Jika kalian ingin langsung menghubungkan database, silahakn kalian buat script konek ke database sendiri, karena disini saya hanya akan memberikan bagaimana melakukan validasi captcha saja.

<?php
session_start();
$nama = $_POST['nama'];
$pesan = $_POST['pesan'];
$captcha = $_POST['captcha'];
$valid = 1;
if(md5($captcha) != $_SESSION['image_random_value']){
$valid = 0;
echo "Maaf, kode captcha yang dimasukkan salah!!!";
}
if($valid == 1){
//masukkan kedatabase..
echo "Selamat, anda berhasil";
}
?>

Simple bukan? Kalian bisa merubah script diatas sesuai dengan keinginan kalian sendiri. Semoga tutorial ini berguna.