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…