Buat Captcha Sendiri Dengan PHP

Wahyu Raja Butar-Butar 1 18:28
Cara Sederhana

Security Code biasanya digunakan pada sebuat website untuk mengamankan sebuah formulir inputan, seperti bukutamu, shoutbox, comentar artikel, login, dan lain-lain sesuai dengan yang diinginkan, tujuannya adalah agar pengunjung yang mengisi formulir tersebut benar-benar manusia bukan mesin/spam. dan security code keamanan yang sudah sangat populer sering disebut dengan Chaptca code. namun terkadang bagi orang awam atau orang yang sudah terbiasa menggunakan internet, terkadang terkendala masalah text/code keamanan yang ditampilkan pada sebuah formulir dengan menggunakan chaptca, karena biasanya code yang tampil berbentuk gambar dengan bertuliskan karakter huruf atau angka tetapi tulisannya miring-miring, kadang ga tau ga jelas.

ada juga versi code keamanan dengan menggunakan perhitungan misal nilai a + nilai b hasilnya berapa, dan ada juga menuliskan code keamanan menggunakan nama-nama pemain bola seperti yang pernah saya baca di salah satu website indonesia , dan masih banyak lagi versi-versi yang lainnya, yang bisa anda dapatkan dengan search di google. mungkin sudah cukup basa-basinya, kita langsung aja ke intinya


Yang pertama silahkan anda buat database terlebih dahulu, jika sudah ada boleh gunakan yang sudah ada,dan selanjutnya buat tabel di database dengan rincian di bawah ini :
nama tabel : formulir

Nama Field Tipe dan Panjang Keterangan
kdformulir INT (11) Auto_Increment, Primary Key, Not Null
nama Varchar (35) Null
komentar Varchar(255) Null
jika sudah, silahkan anda buat file-file di bawah ini :
nama file : koneksi.php

<?
$koneksi=mysql_connect("localhost","root","") or die ("Gagal terhubung ke server DB");
mysql_selet_db("nama_db_anda",$koneksi) or die("Gagal Mengambil Database");
?>

Nama File : code_keamanan.php
  <?
$nomor = '1234567890';
$huruf_kecil = 'abcdefghijklmnopqrstuvwxyz';
$huruf_besar = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'; // nomor, huruf_kecil, huruf_besar adalah code yang akan ditampilkan di layar secara acak
$acak = $nomor.''.$huruf_kecil.''.$huruf_besar; // dari ke 3 code diatas di gabung menjadi 1, menjadi variabel $acak
$acak = str_shuffle($acak); //setelah digabung,kita manfaatkan str_shuffle untuk mengacak code diatas.
$acak = substr($acak,0,5); // setelah code diatas diacak, maka kita gunakan perintah substr($acak,0,5) maksudnya kita akan mengambil dari karakter ke 0 dan maksimal karakter yang akan di tampilkan hanya 5
$_SESSION['cacak']=$acak; // $_SERVER['caca']; fungsinya code yang sudah diambil sebanyak 5 karakter disimpan ke dalam SESSION untuk perbandingan data yang diinput dan data yang ada di session nantinya
?>
<font size="+1"><?=$acak?></font>
<input type="hidden" name="acak" value="<?=$acak?>" id="nomor">
<input name="nomor" type="text" class="textfield"  id="input" size="5">

Nama File : formulir.php
  <?
  session_start(); 
  require "koneksi.php";
  //ambildata dari Formulir
  $proses=$_GET['proses'];
  $nama=$_POST['nama'];
  $komentar=$_POST['komentar'];
  $cacak=$_SESSION['cacak'];
  $acak=$_POST['acak'];
  if($proses=='simpan'){ // jika formulir di jalankan, atau tombol submit di tekan maka logika $proses==simpana akan aktif, proses=simpan di ambil dari <form name="form1" method="post" action="?proses=simpan">
  
if(($cacak==$_POST['nomor'])&&!empty($acak)){ // jika code yang ditulis dari formulir($acak) = code yang ada di session ($cacak) dan $acak tidak kosong maka proses simpan dijalankan, jika tidak muncul keterangan Maaf, security code salah
$simpan=mysql_query("INSERT INTO formulir VALUES ('','$nama','$komentar')");
// jika logika untuk $simpan, jika $simpan berhasil maka muncul selamat, jika gagal muncul maaf
if($simpan){
echo "<script language='JavaScript'> alert ('Selamat, Pesan Berhasil disimpan') </script>";
} else{
echo "<script language='JavaScript'> alert ('Maaf, Pesan gagal disimpan') </script>";
}
// unset untuk Menghapus Session Security Code yang telah ditampilkan
unset ($_SESSION["cacak"]);
} else {
echo "<script language='JavaScript'> alert ('Maaf, Scurity Code salah, Coba Kembali') </script>";
}
}
?>
<form name="form1" method="post" action="?proses=simpan">
<table width="546" border="0" cellpadding="3" cellspacing="1">
<tr>
<td colspan="2" bgcolor="#00CCFF">&nbsp;</td>
</tr>
<tr>
<td width="155" bgcolor="#D5F7FF">Nama</td>
<td width="375" bgcolor="#F4FDFF"><input type="text" name="nama" id="nama"></td>
</tr>
<tr>
<td bgcolor="#D5F7FF">Komentar</td>
<td bgcolor="#F4FDFF"><textarea name="komentar" cols="35" rows="5" id="komentar"></textarea></td>
</tr>
<tr>
<td bgcolor="#D5F7FF">Kode Keamanan</td>
<td bgcolor="#F4FDFF"><? require "code_keamanan.php";// berfungsi untuk menyisipkan code keamanan pada formulir ?></td>
</tr>
<tr>
<td bgcolor="#D5F7FF">&nbsp;</td>
<td bgcolor="#F4FDFF"><input type="submit" name="button" id="button" value="Submit">
<input type="reset" name="button2" id="button2" value="Reset"></td>
</tr>
<tr>
<td colspan="2" bgcolor="#00CCFF">&nbsp;</td>
</tr>
</table>
</form>

Cara Kedua

Sedikit informasi tentang Penggunaan Kode Keamanan / Scurity Code.
Ini hanya sekedar sharing code saja

yang pertama yang harus kita siapkan adalah kode captcha. untuk server di harapkan menggunakan server PHP Versi Terbaru, agar dalam proses pembelajaran ini dapat berjalan dengan baik. dibawah ini adalah codenya :

## Captcha.php ##

<?
$sid=trim($HTTP_GET_VARS["sid"]);
session_id($sid);
session_start();
$angka = $HTTP_SESSION_VARS["angka"];
mt_srand((double)microtime()*1000000);
$jarak1 = mt_rand(0,10);
$jarak2 = mt_rand(0,10);
$jarak3 = mt_rand(0,10);
$jarak4 = mt_rand(0,10);
$ujung1 = mt_rand(0,60);
$ujung2 = mt_rand(0,60);
$ujung3 = mt_rand(0,60);
$ujung4 = mt_rand(0,60);
$ujung5 = mt_rand(0,60);
$ujung6 = mt_rand(0,60);
$ujung7 = mt_rand(0,60);
$ujung8 = mt_rand(0,60);
$warna1 = mt_rand(0,150);
$warna2 = mt_rand(0,150);
$warna3 = mt_rand(0,150);
$warna4 = mt_rand(0,150);
$warna5 = mt_rand(0,150);
$warna6 = mt_rand(0,150);
$height = 13;
$width = 62;
$im = ImageCreate($width, $height);
$background = ImageColorAllocate($im, 255,255,255);
$warnagaris = ImageColorAllocate($im, $warna1, $warna2, $warna3);
$warnaangka = ImageColorAllocate($im, $warna4, $warna5, $warna6);
ImageFill($im, 0, 0, $background);
ImageLine($im, 0, $jarak1, $ujung1, $ujung2, $warnagaris);
ImageLine($im, 0, $jarak2, $ujung3, $ujung4, $warnagaris);
ImageLine($im, 60, $jarak3, $ujung5, $ujung6, $warnagaris);
ImageLine($im, 60, $jarak4, $ujung7, $ujung8, $warnagaris);
ImageString ($im, 6, 10, 0, $angka, $warnaangka);
Imagejpeg($im);
?>

dan berikut ini adalah code untuk inputan Scurity Codenya

## inputan.php ##

<?
$sid = session_id();
$submit=$_POST['submit'];

if(!$sid){
session_start();
$sid = session_id();
}
if ($submit) {
$code=$_POST['code'];
$angka=$_SESSION['angka'];
if ($code!=$angka) {
echo "Security number salah.<br />";
} else {
echo "Selamat Anda benar menuliskan angkanya";
}
}
?>
<h4>Kirim Komentar:</h4>
<form method="post" action="<?=$PHP_SELF?>">
<p>
Security Number: <input type="text" name="code" class="textbox" />
<?
mt_srand((double)microtime()*1000000);
$angka1 = mt_rand(0,9);
$angka2 = mt_rand(0,9);
$angka3 = mt_rand(0,9);
$angka4 = mt_rand(0,9);
$angka5 = mt_rand(0,9);
$angka="$angka1$angka2$angka3$angka4$angka5";
$HTTP_SESSION_VARS["angka"] = $angka;
?>
<img src="captcha.php?sid=<?=$sid?>" alt="Security Number" /> <br /><br />
<input type="submit" name="submit" value="Kirim Komentar" />
</p>
</form>

Kode selesai sampai disini, jika code diatas dijalankan, maka akan muncul tampilan seperti gambar di bawah ini



Terima Kasih.. Artikel Selesai Sampai disini

Related Posts

Web 6601513675264391434
Comments
1 Comments
Facebook Comments by Media Blogger

1 comments

(*.*)(*.*)(*.*)(*.*)(*.*)

Post a Comment

Search

Google+ Followers

Popular Posts

Translate