Unsecured debt consolidation loan


Sunday, 14 February 2010

Membuat Kode Captcha Sederhana dengan PHP

Kata-kata kode captcha mungkin sudah tidak asing lagi buat para SPAMer. Mereka pasti akan mencari celah dari kelemahan sistem kode captcha di suatu website, agar dapat mempermudah tindakan SPAM mereka. Tapi pada artikel ini kita tidak akan mempelajari cara mencari kelemahan suatu sistem captcha.

Melainkan, kita akan mencoba untuk membuat kode captcha sederhana dengan bantuan PHP. Nantinya kita akan menyisipkan kode tersebut pada form kontak yang sudah dipelajari pada postingan sebelumnya.
Langsung aja deh, kita akan membuat 3 buah file. File yang pertama berisi fungsi, yang kedua berisi form dan yang ketiga berisi kode untuk memproses data dari form.

Oke, untuk pertama kita akan membuat file "fungsi.php" yang isinya kode di bawah ini. Kalau belum punya phpEditor, Anda bisa membuatnya dengan bantuan notepad.


<?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;
}

?>
Setelah selesai membuatnya, jangan lupa simpan dengan nama "fungsi.php" di folder server localhost anda (belum punya server web localhost?? Klik disini, untuk membuatnya). Kalau anda menggunakan notepad, jangan lupa untuk mengganti Save as type-nya dengan All Files.

Setelah itu kita akan membuat file "form.php". File ini akan berisi form inputan untuk user. Berikut adalah kode dari file form.php.


<html>
<head>
<title>FORM KONTAK</title>
</head>
<body>
<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>
<?
include('fungsi.php');
$kode = captcha();
echo "<tr><td>$kode</td><td><input type='text' name='kode_user' maxlength=5>Isikan sesuai kode di samping</td></tr>
<input type='hidden' name='kode_server' value='$kode'>";
?>
<tr><td colspan=2><input type='submit' value='KIRIM'></td></tr>
</table>
</form>
</body>
</html>
Setelah itu silakan simpan di folder yang sama dengan file fungsi.php, dan kita mulai dengan file baru, yaitu file "proses_form.php". File inilah yang nantinya akan digunakan untuk memproses data dari file "form.php" yang diisikan oleh user. Berikut adalah isi dari file proses_form.php.


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


if($kode_user == $kode_server)
{
$tujuan="wilianto.indra@gmail.com"; //ganti dengan email anda
$header="From: $email";


//kirim
@ mail($tujuan, $subjek, $pesan, $header);
echo "Pesan anda sudah berhasil terkirim";
}
else
echo "Kode captcha tidak valid";
?>
Simpan di folder yang sama juga dengan file fungsi.php dan form.php. Sekarang silakan coba dulu web yang sudah anda buat.

PENJELASAN KODE
File "fungsi.php"
File ini berisikan fungsi untuk mengacak kode captcha. Pertama kita tentukan karakter kode di dalam variabel $kar, dalam hal ini kita mengisikan angka dari 0-9. Lalu kita acak karakter dari $kar dengan fungsi srand((double)microtime()*100000). Dan yang terakhir kita gunakan looping for, untuk menampilkan hasilnya, dalam hal ini kita ambil 5 kode pertama saja.


File "form.php"
File ini hampir sama dengan file form.html yang pernah kita buat pada tutorial sebelumnya. Hanya saja ada kode

<?
include('fungsi.php');
$kode = captcha();
echo "<tr><td>$kode</td><td><input type='text' name='kode_user' maxlength=5>Isikan sesuai kode di samping</td></tr>
<input type='hidden' name='kode_server' value='$kode'>";
?>
Di dalam kode di atas, kita memanggil file fungsi.php yang tadi kita buat dengan fungsi include(). Lalu kita simpan hasil dari fungsi captcha() di dalam variabel $kode.

File "proses_form.php"
Dalam file ini, pertama-tama kita buatkan variabel untuk menyimpan data dari user. Setelah itu kita cek, apakah inputan kode dari user sama dengan kode dari server. Jika sama maka kirimkan pesan, tapi jika gagal, tampilkan pesan error.

Sekian tutorial kali ini, mudah-mudahan bisa membantu.


Anda bisa mendownload hasil kode tersebut dalam bentuk zip, di sini.

6 comments:

mantap gan, boleh di coba nih... tuker banner dong...

thank u infor nya mas,kunjungi blog saya ya...?
formulabisnis2010.blogspot.com

bagus nih buat pemula kayaku ini, nuhun kasep.

Post a Comment

Enter your email address:

Delivered by FeedBurner