Tutorial membuat Captcha
Baru inget kalau dulu pernah direpotkan bagaimana cara bikin form yang ada captchanya, ngubek-ngubek internet ditemenin om Google untuk cari tutorialnya, aha..ketemu juga! tapi kurang lengkap dan sering gak diterangi gimana aplikasiin tu captcha ke form, jadi bingung deh.. maklum nubi. Mudah – mudahan tutorial ini dapat bermanfaat, yukz kita mulai aja..
Ada 4 file dari aplikasi yang akan kita buat disini.
- index.php ( tampilan form itu sendiri )
- captcha.php ( script captchanya )
- send.php ( file yang akan melakukan proses ketika tombol submit pada index di hit )
- img.jpg ( hanya file image, silahkan dibuat sendiri yach )
Oke kita lihat jeroan ketiga file dengan extensi php diatas ya….
1. index.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 | <!-- .judul { text-align: center; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 24px; font-weight: bold; color:#FF0000; } .table { font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; } .bintang { color:#FF0000; } .style1 {color: #FF0000; font-weight: bold; } .style5 { font-size: 12px; font-family: Verdana, Arial, Helvetica, sans-serif; color: #000000; } --> Form Pendaftaran via Email<form action="send.php" method="post"><strong>FORM PENDAFTARAN</strong> <table class="table" border="1" cellspacing="0" cellpadding="3" width="61%"> <tbody> <tr> <td width="56%"> <div> <strong>Nama Lengkap<span class="bintang">*</span></strong></div></td> <td width="44%"><input id="txtNama" name="txtNama" type="text" /></td> </tr> <tr> <td> <div> <strong>Nomor KTP/SIM/Paspor/Kartu Pelajar<span class="bintang">*</span> </strong></div></td> <td><input id="txtKTP" name="txtKTP" type="text" /></td> </tr> <tr> <td> <div><strong>Tempat Lahir<span class="bintang">*</span></strong></div></td> <td> <input id="txtLahir" name="txtLahir" type="text" /></td> </tr> <tr> <td> <div><strong>Tanggal Lahir<span class="bintang">*</span> </strong></div></td> <td> <select id="lsttgl" class="inputstyle" name="lsttgl"> <!-- for(i=1;i<=31;i++) { if(i==1) { document.write('<option value="' + i + '" selected>' + i + '</option>') } else { document.write('<option value="' + i + '">' + i + '</option>') } } // --> </select> - <select id="lstbln" class="inputstyle" name="lstbln"> <option selected="selected" value="1">Januari</option> <option value="2">Februari</option> <option value="3">Maret</option> <option value="4">April</option> <option value="5">Mei</option> <option value="6">Juni</option> <option value="7">Juli</option> <option value="8">Agustus</option> <option value="9">September</option> <option value="10">Oktober</option> <option value="11">November</option> <option value="12">Desember</option> </select> - <select id="lstthn" class="inputstyle" name="lstthn"> <!-- for(i=1950;i<=2007;i++) { if(i==1975) { document.write('<option value="' + i + '" selected>' + i + '</option>') } else { document.write('<option value="' + i + '">' + i + '</option>') } } // --> </select></td> </tr> <tr> <td> <div><strong>Alamat<span class="bintang">*</span> </strong></div></td> <td><textarea id="txtAlamat" name="txtAlamat"></textarea></td> </tr> <tr> <td> <div> <strong>Nomor Telepon atau Handphone yang bisa dihubungi<span class="bintang">*</span> </strong></div></td> <td><input id="txtHP" name="txtHP" type="text" /></td> </tr> <tr> <td> <div><strong>Masukkan jumlah hasil penjumlahan dari gambar<span class="”bintang”">*</span></strong><span class="”bintang”"> <img src="”captcha.php”/" alt="" /></span></div></td> <td> <input name="”ccek”" type="”text”/" /></td> </tr> <tr> <td> <div><strong>Keterangan Tambahan</strong></div></td> <td><textarea id="”txtKeterangan”" name="”txtKeterangan”"></textarea></td> </tr> <tr> <td> <div><span class="”style1″">*semua field harus diisi</span></div></td> <td><input name="”cek”" type="”submit”" value="”Kirim”/" /></td> </tr> <tr> <td colspan="2"></td> </tr> <tr> <td colspan="2"> <strong>Tolong masukkan data secara benar dan valid, semua field harus diisi !</strong></td> </tr> </tbody></table> </form> |
2. captcha.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | <?php session_start(); $gbr = "img.jpg"; $merah = "255"; $ijo = "255"; $biru = "255"; $acak1 = mt_rand(1,100); // nilai acak 1 $acak2 = mt_rand(1,100); // nilai acak 2 $strtampil = $acak1." + ".$acak2; $hasil = $acak1 + $acak2; $bikingbr =imagecreatefromjpeg($gbr); $teks = imagecolorallocate($bikingbr, $merah, $ijo, $biru); imagestring($bikingbr, 5, 20, 10, $strtampil, $teks); $_SESSION['capcay'] = $hasil; header("Content-type: image/jpeg"); imagejpeg($bikingbr); ?> |
3. send.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | <?php session_start(); $to = "email-kamu@domain-kamu.com"; $subject = "Isikan subjectnya disini"; $txtNama = $_POST['txtNama'] ; $txtKTP = $_POST['txtKTP']; $txtLahir = $_POST['txtLahir']; $tgl = $_POST['lsttgl']; $bln = $_POST['lstbln']; $thn = $_POST['lstthn']; $txtAlamat = $_POST['txtAlamat']; $txtHP = $_POST['txtHP']; $txtKeterangan = $_POST['txtKeterangan']; $cek = $_POST['ccek']; $message = "Nama: ".$txtNama."<br>KTP: ".$txtKTP."<br>Tempat Lahir: ".$txtLahir. "<br>Tanggal Lahir: ".$tgl."-".$bln."-".$thn."<br>Alamat: ".$txtAlamat."<br>HP: ".$txtHP."<br>Keterangan: ".$txtKeterangan; if($txtNama == "" || $txtHP == "" ||$txtAlamat == "" || $txtKTP == "" || $txtLahir == "" ) { header("location:index.php?err=1"); exit; } if($_POST['ccek'] != $_SESSION['capcay']){ header("location:index.php?err=1"); exit; } if((bln==4||bln==6||bln==9||bln==11)&&tgl>30) { header("location:index.php?err=1"); exit; } else if((bln==2) && tgl>29) { header("location:index.php?err=1"); exit; } else if((bln==2) && (thn%4!=0) && (tgl>28)) { header("location:index.php?err=1"); exit; } else if((bln==2) && (thn%4==0) && (tgl>29)) { header("location:index.php?err=1"); exit; } $sent = mail($to, $subject, $message) ; if($sent) {print "Terima kasih, Data Anda sudah terregistrasi dengan sukses, silahkan tutup halaman ini"; } else {print "Registrasi gagal, Silahkan ulangi kembali"; } ?> |
Digg it StumbleUpon Facebook Twitter del.icio.us Google Yahoo! reddit

minta image captcha nya dong boz !!
aku udh nyoba tapi image nya gak pernah pas (error terus). kirim ke emailku. Thanks bgt b4.
Reply
capatcha O uye
Reply
kk..
aku minta captcha dengan asp net dong ..
Reply
Wah mas bagus juga ya tutorialnya emang ini yang dibutuhkan untuk disimpan didalam website menghindari aksi dari flooding machine yang mengakibatkan ngecrash nya database kita…
Reply
Ijin Copas mas, saya punya tutorialnya cuma khusus untuk localhost, masih bingung mengaplikasikannya pada CMS. ( Hanya untuk kepentingan sendiri Kok..he…he…)
.-= aldy´s last blog ..Jika kita mau belajar, semuanya akan menjadi mudah. =-.
Reply
Eclipse Reply:
July 21st, 2009 at 12:12 pm
Silahkan sob…dengan senang hati
Reply
hello bro tolong kirimin dong??kok g mau tampil gambanya y??thanks 4All…
Reply
Planet Orange Reply:
August 5th, 2009 at 4:54 pm
Gambar apanya yang gak tampil bro…. kl utk backgroundnya bisa pake sembarang image, asal namanya didefeniin dulu…
Kl ada yang kurang jelas, jangan ragu2 utk kontek saya bro..
Reply
bisa minta screen shotnya hasil jadinya…????
Reply
gimana bro kagak bisa
Reply
imagenya dong gan!!!
Reply
terimakasih Mas ….. Mudah2an Makin Sukses….Salam kenal…
Reply