Hallo Guys!! Good morning selamat pagi untuk kalian yang berada di Wilayah Negara Kesatuan Republik Indonesia dan sekitarnya.. :-D)
Untuk edisi postingan kali ini, saya coba share tutorial cara membuat image captcha AntiSpam sederhana dengan menggunakan bahasa pemrograman PHP. Di dalamnya, sudah saya coba dengan menyertakan fitur session. Hasilnya, lumayan memuaskan laah untuk sementara..
OK guys, langsung saja kita ke pembahasan utama postingan ini.
Sebagai informasi awal, disini saya menggunakan software RapidPHP yang di integrasikan dengan PHP versi 7.19 sebagai bahan pelengkap saat mencoba hasil codding PHP-nya. Jika kalian memiliki tools editor yang lain, silahkan saja. › lagian, siapa juga yang larang.. iya ngga?!?
Pertama-tama, buatlah file baru lalu mulai codding dengan deklarasi variable-nya:
<?php
/** Belajar Pemrograman PHP
* Cara Membuat Anti-Spam (Image Captcha) Sederhana
*
* untuk medowload hasil programnya, silahkan kunjungi
* http://kangfirm84.blogspot.com/
*/
### BEGIN SETTINGS
$imgType= (isset($_GET['type']) && !empty($_GET['type'])) ? $_GET['type'] : 'default';
$imageH = (isset($_GET['h']) && !empty($_GET['h'])) ? $_GET['h'] : 20; //ukuran tinggi gambar
$imageW = (isset($_GET['w']) && !empty($_GET['w'])) ? $_GET['w'] : 80; //ukuran lebar gambar
//Jenis huruf yang akan di gunakan, pastikan file huruf di upload ke server dalam path yang sama.
//sebagai contoh, saya menggunakan huruf yang saya miliki dengan nama zombnze.ttf
$fntName= (isset($_GET['font']) && !empty($_GET['font'])) ? $_GET['font'] : 'zombnze.ttf';
//ukuran huruf yang di tampilkan
$fntSize= $imageH*0.8;
//berapa banyak karakter yang akan ditampilkan dalam captcha?
$lenCode= 6;
//karakter apa saja yang diijinkan dalam captcha?
$charset= '0123456789abcdefghijklmnopqrstuvwxyz';
### END OF SETTINGS
gimana, sikut anda lumayan panas khan?!? hehehe..
Kode di atas adalah sebagai perwakilan untuk menghindari terjadinya error jika file ini dipanggil/akan digunakan oleh file skrip lain.
Masih sanggup mengetik kode programnya?!? OK, kita lanjutkan ke baris selanjutnya..
### BEGIN PROGRAM
//Memulai sesi program
if (function_exists('session_start')) @session_start();
$code = '';
for ($i=0; $i<$lenCode; $i++) {
$code .= substr($charset, mt_rand(0, strlen($charset)-1), 1);
}
$image_ = @ImageCreate($imageW, $imageH);
$groun_color= @ImageColorAllocate($image_, 255, 255, 255);
$noise_color= @ImageColorAllocate($image_, 180, 180, 180);
//tambahkan noise pada gambar
for ($i=0; $i<($imageW*$imageH)/6; $i++) {
@ImageEllipse($image_, mt_rand(0, $imageW), mt_rand(0, $imageH), 1, 1, $noise_color);
}
//render text
$render_text= @imagecolorallocate($image_, 40, 80, 120);
@imagettftext($image_, $fntSize, 0, 6, 15, $render_text, $fntName, $code)
or die('Sorry, system can\'t render text or TTF files');
Perhatikan kode di atas, itu adalah persiapan sebelum output program di tampilkan. Periksa ulang dan
jangan sampai ketinggalan ya, nanti hasil programnya error lho! wkwkwk..
//output image
header('Control-cache: private, no-cache, must-revalidation');
header('Expires: 0');
switch (strtolower($imgType)) {
case 'jpeg' ? 'jpg' : function_exists('ImageJPEG'):
header('Content-type: image/jpeg');
@imagejpeg($image_) or die('Sorry, ImageJPEG error!');
break;
case 'wmf' ? 'gif' : function_exists('ImageGIF'):
header('Content-type: image/gif');
@imagegif($image_) or die('Sorry, ImageGIF error!');
break;
default:
header('Content-type: image/png');
@imagepng($image_) or die('Sorry, ImagePNG error!');
break;
}
inilah kode pamungkas dari program yang kalian buat, yang nantinya hasil program tersebut akan di tampilkan dalam halaman pengguna (seperti hubungi kami, contact us, pendaftaran member, dll, dsb, dst..)
@imagedestroy($image_);
$_SESSION['AntiSpamImage'] = $code;
exit();
### END PROGRAM
?>
yang barusan adalah kode penutup program.
Horeeeeeeee
Jadi, anda dinyatakan sudah sukses membuat program captcha sederhana dengan menggunakan bahasa pemrograman PHP ini.
Selamat Ya!!
tutorial visual step-by-step-nya, dapat kalian lihat di https://youtu.be/1utPYsu2mg0
Khusus buat yang ga' mau susah-susah ngetik, saya sediakan link downloadnya di bawah.
[ Skripnya Disini ]