Tuesday, April 29, 2014

Membuat form kontak dilengkapi kode captcha yang dirandom dengan php

membuat form validasi menggunakan captcha
Baiklah kita langsung saja ke pokok permasalahan, saat ini saya akan membahas bagaimana caranya membuat form kontak yang di lengkapi dengan kode capthca yang di random dengan menggunakan kode php tentunya. Sebelumnya silahkan anda lihat form kontak yang saya maksudkan, yang kebetulan sudah saya gunakan di blog ini

Sebenarnya bukan form kontak saja yang memerlukan penggunaan kode captcha tersebut, melainkan semua form memang diharuskan untuk menggunakan kode tersebut, seperti form untuk login, registrasi, dan sebagainya, tujuannya adalah untuk menghalau para spamer memanfaatkan form tersebut, yang biasanya para spamer membuat auto submiter yang dibuat khusus untuk mengisi form secara otomatis dan terus-menerus mensubmit form tersebut, tidak lain tujuan mereka adalah untuk beriklan.

Baiklah, pada kesempatan kali ini saya akan mengambil salah satu contoh nya saja, yaitu fungsi kode captcha untuk membuat sebuah form kontak, dimana form kontak ini digunakan oleh para pengunjung web atau blog untuk mengirim pesan kepada pemilik nya, dan saat ini saya tidak akan membahas secara keseluruhan nya, tapi hanya proses penggunaan random karakter nya saja, yaitu pembuatan random kode captcha dengan php, dan bagi anda yang memang sedang membutuhkan form kontak yang sudah jadi, gak usah khawatir, karena di akhir tutorial ini sudah saya sertakan link download untuk kode form kontak yang sudah jadi secara lengkap, dan serkarang anda jangan beranjak dulu, silahkan selesaikan membaca tutorial nya, hehe....

Perhatikan baris kode sederhana dibawah ini:
File random.php


<?php
function antirobot(){
 $karakter = array('a','A','b','B','c','C','d','D','e','E','f','F','g','G','h','H','i','I','j','J','k','K','l','L','m','M','n','N','o','O','p','P','q','Q','r','R','s','S','t','T','u','U','v','V','w','W','x','X','y','Y','z','Z','1','2','3','4','5','6','7','8','9','0');
 $max = (count($karakter)-1);
 srand(((double)microtime()*1000000));
 $kar1 = $karakter[rand(0,$max)];
 $kar2 = $karakter[rand(0,$max)];
 $kar3 = $karakter[rand(0,$max)];
 $kar4 = $karakter[rand(0,$max)];
 $rand_kar = $kar1.$kar2.$kar3.$kar4;
 setcookie('random', $rand_kar, time()+7200);
 return $rand_kar;
}
echo antirobot();
?>

Kode diatas jika dijalankan akan menyimpan sebuah cookie yang bernama random, dan isi dari cookie tersebut tidak lain adalah text string yang di random dari a-z dan 0-9 karakter, dan setiap fungsi antirobot() tersebut dijalankan maka isi dari cookie itu pun akan berubah sesuai dengan karakter yang dirandom tadi.

Nantinya cookie yang sudah tersimpan di browser itu akan digunakan pada saat pemrosesan dilakukan, silahkan perhatikan sebuah form dibawah ini, yang saya padukan dengan jquery ajax javascript, dimana fungsi antirobot tersebut akan dipanggil menggunakan ajax.

File form.php

<script type="text/javascript" src="jquery-1.6.2.min.js"></script>
<script type="text/javascript">
function reloadkode(){
$("#random").html('....');
$("#random").load('random.php');
}
$(function(){
reloadkode();
})
</script>
<form name="pesan" action="proses.php" method="post">
Nama: <input type="text" name="nama" value="" size="20" /><br />
Email: <input type="text" name="email" value="" size="25" /><br />
Pesan: <textarea name="pesan" rows="7" cols="35"></textarea><br />
Masukan kode ini <span id="random" style="color:#EE0000; font-size:large;">....</span>
disini: <input type="text" name="random" value="" size="5" /> <a href="javascript:reloadkode();">Reload Kode</a>
<input type="submit" name="submit" value="Kirim Pesan" />
</form>

SreenShoot Form.php

Kemudian form tersebut akan di proses oleh file proses.php dan akan mencocokan random karakter yang dibawa nya dengan cookie yang sudah disimpan, dan apabila cocok, maka proses akan dilanjutkan

File proses.php

<?php
$nama = $_POST['nama'];
$email = $_POST['email'];
$pesan = $_POST['pesan'];
$random = strtoupper($_POST['random']);
if($random == ""){echo "Anti spam jangan dikosongkan!<br/>
<a href='javascript:history.back();'>Kembali</a>";}else{
if($random == strtoupper($_COOKIE['random'])){
echo "Terimakasih $nama, pesan anda telah diproses!<br/>
Rincian pesan anda adalah:<br/><br/>
Nama: $nama<br/>
Email: $email<br/>
Pesan: $pesan<br/><br/>
Thank's<br/>
<a href='javascript:history.back();'>Kembali</a>";
}else{echo "Kode captcha yang anda masukan salah!<br/>
<a href='javascript:history.back();'>Kembali</a>";}
}
?>

Kode diatas hanyalah contoh saja, jika anda memerlukan kode form kontak secara lengkap, silahkan download disini, dan jangan lupa untuk memberikan tanggapan pada tutorial ini, semoga bermanfaat bagi anda yang membaca nya. Wassalam....
Disqus Comments