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:
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:
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);
- ?>