Membuat Captcha dengan PHP

Tutorial Membuat Captcha dengan PHP menjelaskan cara membuat captcha atau security Image menggunakan PHP, untuk  menghindari spam.

 

"CAPTCHA atau Captcha adalah suatu bentuk uji tantangan-tanggapan (challange-response test) yang digunakan dalam perkomputeran untuk memastikan bahwa jawaban tidak dihasilkan oleh suatu komputer. Proses ini biasanya melibatkan suatu komputer (server) yang meminta seorang pengguna untuk menyelesaikan suatu uji sederhana yang dapat dihasilkan dan dinilai oleh komputer tersebut."
CAPTCHA. (2010, Maret 15). Wikipedia, . Diakses pada 14:45, Maret 25, 2010 dari http://id.wikipedia.org/w/index.php?title=CAPTCHA&oldid=2986211.
 

Yang perlu diperhatikan dalam membuat captcha di PHP adalah librari PHP GD sudah terinstall. Untuk mengetahui PHP GD sudah terinstall, buatlah sebuah file dengan nama phpinfo.php dan isi dengan script di bawah:

<!--phpinfo.php-->
<?
phpinfo();
?>

Tempatkan file phpinfo.php ini di root directory webserver dan kemudian akses file ini menggunakan browser. Jika PHP GD sudah terinstall maka akan terlihat setting PHP GD seperti di bawah:

Setting PHP GD

Jika PHP GD belum terinstall silahkan kunjungi link http://id2.php.net/manual/en/book.image.php untuk mengetahui cara menginstall PHP GD.

Ada tiga langkah singkat dan mudah membuat captcha dengan PHP, seperti berikut:

1. Membuat Gambar Sumber atau Background Image

Buatlah sebuah image dengan tipe *.jpg dengan ukuran 60 x 30 px atau sesuai selera dengan warna background sesuai selera. Untuk membuat background image ini, bisa menggunakan MS paint, photoshop atau Gimp jika menggunakan OS linux. Contoh:

Captcha

2. Membuat Script Captcha dengan PHP

Buatlah sebuah file dengan nama captcha.php dan isi dengan script di bawah:

<?php
//captcha.php

session_start();
$alphaNumeric = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
$random = substr(str_shuffle($alphaNumeric), 0, 5);
$image = imagecreatefromjpeg("path/to/background.jpg");
$textColor = imagecolorallocate ($image, 0, 0, 0); //black
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);
?>

3. Implementasi Script Captcha

Buatlah sebuah file dengan nama implement-captcha.php dan isi dengan script di bawah:

<!--implement-captcha.php-->
<?php
if($_POST['submit']){
session_start();
 if(md5($_POST['pin']) == $_SESSION['image_random_value']){
 echo '<p>You are people</p>';
 }else{
 echo '<p>Are you human being?</pa>';
 }
}
?>
<form name="form1" method="post" action="">
<img src="captcha.php?date=<?php echo date('YmdHis');?>" alt="security image" />
<div>
Input Text Above: <input type="text" name="pin" />
<input type="submit" name="submit" value="Submit" />
</div>
</form>

Dengan melakukan tiga langkah di atas anda telah bisa membuat captcha menggunakan PHP. Download Tutorial