Assalamu’alaikum
rekan-rekan, izinkan saya menulis sebuah artikel tentang Cara Membuat Kode Captcha Sederhana Menggunakan PHP. Bagi yang
ingin belajar lebih dalam mengenai pembuatan captcha sederhana ini, silahkan
baca artikel ini hingga selesai. ^_^
Sebelumnya,
saya mempelajari cara pembuatan kode captcha sederhana ini dari beberapa
tutorial di Internet, di buku, dan mempelajari script kode captcha sejenis
karya seseorang di Internet. Baiklah, langsung saja kita mulai.
Hal pertama
yang kita harus lakukan adalah membuat file captcha.php dengan isi
script sebagai berikut:
session_start();
$captcha=substr(str_shuffle("0123456789abcdef"),0,5);
$_SESSION['captcha']=$captcha;
$gbr=ImageCreate(50,20);
$m=ImageColorAllocate($gbr,255,0,128);
$p=ImageColorAllocate($gbr,255,255,255);
ImageFilledRectangle($gbr,0,0,50,20,$m);
ImageString($gbr,10,3,3,$captcha,$p);
ImageJPEG($gbr);
?>
Salin dan pastekan script diatas
ke TextEditor Favorit kalian (misal, Notepad). Kemudian save dengan nama apa
saja dengan berekstensikan php (misal, captcha.php) dan Save as Type-nya All Files.
Setelah itu, kita buat script
verifikasi kode captchanya di file form input. Buat file input.php
dengan isi script sebagai berikut:
<?php session_start(); ?>
<html><head><title>Test</title></head>
<body>
<form action="" method="post">
Captcha: <img src="captcha.php" />
<input type="text" name="captcha" size="5" maxlength="5" />
<input type="submit" name="submit" />
</form>
<?php
if (isset($_POST['submit'])){
if($_SESSION['captcha']==$_POST['captcha'])
{
echo 'Kode CAPTCHA valid';
}
else
{
echo 'Kode CAPTCHA tidak valid';
}
}
?>
</body></html>
<html><head><title>Test</title></head>
<body>
<form action="" method="post">
Captcha: <img src="captcha.php" />
<input type="text" name="captcha" size="5" maxlength="5" />
<input type="submit" name="submit" />
</form>
<?php
if (isset($_POST['submit'])){
if($_SESSION['captcha']==$_POST['captcha'])
{
echo 'Kode CAPTCHA valid';
}
else
{
echo 'Kode CAPTCHA tidak valid';
}
}
?>
</body></html>
Penjelasan isi script file captcha.php:
session_start();
=>Berfungsi untuk memulai
suatu session. Secara default, session dalam kondisi tidak secara otomatis
aktif.
$captcha=substr(str_shuffle("0123456789abcdef"),0,5);
=>$captcha= : Adalah
variabel untuk menampung nilai-nilai dari fungsi substr dan str_shuffle.
=>substr(“kalimat”),0,5)
: Berfungsi untuk membatasi karakter sebuah kata,kalimat,dll. Angka 0 adalah
untuk menentukan karakter awal yg ditampilkan, karakter awal dimulai dari angka
0. Angka 5 adalah untuk membatasi karakter yg tampil.
=>str_shuffle(“abcd”) :
Berfungsi untuk mengacak suatu deretan string (karakter).
$_SESSION['captcha']=$captcha;
=>$_SESSION[‘captcha’] :
Adalah variable global yg nilai dari variabelnya disimpan browser agar nilai
varibel dari file captcha.php bisa ditampilkan pada file input.php.
=>$captcha : Adalah nilai dari
variable $_SESSION[‘captcha’].
Script untuk menkonversi string
menjadi gambar:
$gbr=ImageCreate(50,20);
=>utk membuat gambar dgn
ukuran panjang 50 pixel dan tinggi 20 pixel.
$m=ImageColorAllocate($gbr,255,0,0);
$p=ImageColorAllocate($gbr,255,255,255);
=>ImageColorAllocate(variable,R,G.B)
: Untuk memberi warna pada sebuah gambar.
R=Red.
G=Green.
B=Blue.
$m : menjadi nilai warna merah.
$p : menjadi nilai warna putih.
ImageFilledRectangle($gbr,0,0,50,20,$m);
=>ImageFilledRectangle(variable
image,x,y,panjang,lebar,variable warna): Untuk menggambar kotak dengan
blok.
ImageString($gbr,10,3,3,$captcha,$p);
=>ImageString(variable
image,size huruf,x,y,variable string, variable warna) : untuk membuat teks secara horizontal.
ImageJPEG($gbr);
=>ImageJPEG(variable image) :
Untuk menampilkan image yg telah dibuat ke dalam browser.
http://rialsoft.blogspot.com
Penjelasan script di file input.php:
=> Berfungsi untuk memulai
suatu session. Dan juga kita akan mengambil nilai variable dari
$_SESSION[‘captcha’] yg ada di file captcha.php untuk membandingkan /
memverifikasi kode captcha.
<img src="captcha.php" />
=>untuk menampilkan gambar yg
dihasilkan file captcha.php.
if
(isset($_POST['submit'])){ bla bla bla
}
=>script diatas maksudnya
adalah Jika tombol submit di klik maka akan menjalankan perintah yg ada di
dalam kurung kurawal tersebut ( dalam hal ini perintahnya adalah bla bla bla ).
if($_SESSION['captcha']==$_POST['captcha'])
{ ble ble ble }
=>Adalah kode verifikasi
antara kode captcha yg ditampilkan dengan inputan user.
$_SESSION[‘captcha’] adalah
varible dari file captcha.php.
$_POST[‘captcha’] berhubungan erat dengan
script html diatasnya antara <input type="text" name="captcha" size="5" maxlength="5" /> dan <form action="" method="post">
Dan maksud dari script diatas
adalah Jika variable captcha samadengan inputan dari seorang user, maka akan
menjalankan perintah yg ada di dalam kurung kurawal tersebut (dalam hal ini
perintahnya adalah ble ble ble).
else
{ da di do }
=>Maksudnya adalah Jika
persyaratan dari kode if tidak terpenuhi, maka akan menjalankan perintah di
dalam kurung kurawal tersebut (dalam hal ini perintahnya adalah da di do )
echo
‘kalimat_anda’;
=>Untuk menampilkan kalimat yg
ada di dalam symbol kutip satu di browser.
Catatan: echo HARUS diikuti
symbol kutip satu, penggunaan symbol kutip dua tidak akan menjalankan
perintahnya, jika ingin menampilkan kalimat berkutip di dalam symbol kutip satu
tersebut, maka kalin harus menambahkan karakter backslah sebelum symbol kutip
yg ingin kalian tampilkan di browser. Contoh echo
‘aku \’galau\’ banget dech’. Maka hasilnya di browser: Aku ‘galau’
banget dech.
http://rialsoft.blogspot.com
Sedikit tentang apa itu session
Session merupakan variabel global
yang menampung nilai-nilai yang sifatnya sementara saat user mengunjungi
website sampai user enutup website.