Minggu, 27 Mei 2012

(PHP) Cara Membuat Kode Captcha Sederhana [Full Version]



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>


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.

1 komentar: