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
oke mantap…emang ini yang ane cari dari kearen2…. yes… lengkap sudah kebutuhan web aku…
Thanks alias makasih banyak ya atas informasinya
Halo mas, kok ga bisa ya?
wah ane habis bikin kotak comment di web ane,,dan ane dapet dari emailmeform.com tpi ada capthca nya ane jadi pusing eh ternta ada disini jawabannya makasih yahh salam kenal
Wah keren gan, ane dah cobain nih…manteb..!!