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
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.
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 itu kita akan membuat file "form.php". File ini akan berisi form inputan untuk user. Berikut adalah kode dari file form.php.
<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.
<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>
<?Simpan di folder yang sama juga dengan file fungsi.php dan form.php. Sekarang silakan coba dulu web yang sudah anda buat.
//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";
?>
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
<?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.
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'>";
?>
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.
6 comments:
mantap gan, boleh di coba nih... tuker banner dong...
Thanks buat infonya
wah..
ada master PHP nih :D
thank u infor nya mas,kunjungi blog saya ya...?
formulabisnis2010.blogspot.com
bagus nih buat pemula kayaku ini, nuhun kasep.
bgus
Post a Comment