Unsecured debt consolidation loan


Saturday, 13 February 2010

Membuat Kode Captcha dengan PHP (gambar)

Halo kawan. Pada artikel sebelumnya, kita mencoba membuat kode captcha atau kode verifikasi sederhana dengan bantuan PHP. Namun, pada artikel sebelumnya, kita hanya membuat kodenya tampil dalam bentuk teks.


Sekarang kita akan mencoba untuk membuatnya tampil dalam bentuk gambar. Bagaimana caranya? Caranya mudah, kita hanya perlu sedikit menambahkan kode fungsi. File yang akan kita buat kali ini ada 3 buah. 2 buah file yaitu file fungsi.php dan proses_form.php kodenya sama persis dengan file pada artikel sebelumnya.




Baiklah, langsung saja kita buat file yang pertama, yaitu file "fungsi.php", isi dari file ini sama persis dengan file "fungsi.php" pada artikel sebelumnya. Berikut adalah kodenya.

<?php
function captcha()
{
$kar="0123456789";
//acak karakter
srand((double)microtime()*100000);
for($i=0;$i<5;$i++)
{
$c_acak=rand()%10;
$capt.=substr($kar,$c_acak,1);
}
return $capt;
}

?>

Sama persis kan? Simpan dengan nama "fungsi.php" di folder localhost sobat. Setelah itu kita akan membuat file "proses_form.php" yang isinya sama juga dengan file proses_form.php pada artikel sebelumnya. Berikut adalah kodenya:

<?
//dapatkan data
$nama=$_POST['nama'];
$email=$_POST['email'];
$subjek=$_POST['subjek'];
$pesan=$_POST['pesan'];
$kode_user=$_POST['kode_user'];
$kode_server=$_SESSION['kode'];


if($kode_user == $kode_server)
{
$tujuan="wilianto.indra@gmail.com"; //ganti dengan email anda
$header="From: $email";
unset($_SESSION['kode']);
session_destroy(); 

//kirim
@ mail($tujuan, $subjek, $pesan, $header);
echo "Pesan anda sudah berhasil terkirim";
}
else
echo "Kode captcha tidak valid";
?>

Simpan di folder yang sama dengan file "fungsi.php". Sekarang kita akan membuat file "form.php". File ini sedikit berbeda dengan file form.php pada artikel sebelumnya.  Berikut adalah source kodenya.

<?
include('fungsi.php');

echo"<form action='proses_form.php' method='post'>
<table border=0 cellpadding=4>
<tr><td>Nama:</td><td><input type='text' name='nama'></td></tr>
<tr><td>Email: </td><td><input type='text' name='email'></td></tr>
<tr><td>Subjek:</td><td><input type='text' name='subjek'></td></tr>
<tr><td>Pesan: </td><td><textarea name='pesan' cols='20' rows='5'></textarea></td></tr>
<tr><td><img src='gambar.php'></td><td><input type='text' name='kode_user' maxlength=5>Isikan sesuai kode di samping</td></tr>
<tr><td colspan=2><input type='submit' value='KIRIM'></td></tr>
</table>
</form>";
}
?>

Oke simpan di folder yang sama dengan file proses_form.php. Sekarang kita akan membuat file "gambar.php" untuk membuat gambar kodenya, berikut adalah kodenya.




<?
session_start();
include('fungsi.php');
$kode=captcha();

$_SESSION['kode']=$kode;




header('Content-Type: image/jpeg');
//fungsi untuk membuat gambar
$image=imagecreate(70, 30);
//menentukan warna background
imagefill($image, 1, 1, imagecolorallocate($image, 200, 125, 255)); //hitam
//menentukan warna text
$warnatext=imagecolorallocate($image, 12, 152, 0); //putih
//menulis kode pada gambar
imagestring($image, 5, 18, 12, $kode, $warnatext);
//output gambar
imagejpeg($image, "", 80);
//membebaskan memori
imagedestroy($image);

?>

Sedikit penjelasan, yaitu pada bagian proses gambar. Kita menggunakan fungsi imagecreate() untuk membuat layout gambarnya. Setelah itu kita tentukan warna latar dari kode dan warna hurufnya dengan fungsi imagefill() dan imagecolorallocate(). Lalu kita tulis kode huruf pada latar, dengan fungsi imagestring() dan kita tampilkan gambar dengan fungsi imagejpeg(). Kita menggunakan fungsi imagejpeg, karena kita menginginkan format gambar yang dibuat bertipe jpeg. Dan yang terakhir kita bebaskan memori dengan fungsi imagedestroy(). Maksudnya kita hilangkan gambar, setiap kali selesai digunakan.

Ditunggu komentarnya.

4 comments:

alu masih binggung dengan kode kodenya, tapi nanti dicba . okey,

Bro mau tanya kalau code buat ganti atau refresh gambar captcha gmna?
mohon bantuannya
thx bgt

to@Anonymouse
salam kenal ya dr Achmad husaini,
buat Anonymouse, caranya yaitu menggunakan AJAX, kemudian gunakan event onclick...



kunjungi

http://www.husainiku.co.cc/

Post a Comment

Enter your email address:

Delivered by FeedBurner