Cara Membuat Validasi Form dengan Captcha di PHP




CAPTCHA  sering kita temukan pada saat mengisi suatu formulir tertentu, biasanya dapat berupa gambar angka, huruf, gabungan kombinasi angka dan huruf bahkan perhitungan angka. Sebenarnya apa tujuan adanya CAPTCHA.? tujuannya adalah jelas untuk memvalidasi serta melindungi data yang diinputkan dari mesin - mesin (bot) jahat yang mengirimkan SPAM, CAPTCHA ini memastikan bahwa yang mengirimkan data adalah manusia bukan robot, oke berikut ini adalah cara membuat validasi form dengan CAPTCHA di PHP. Silahkan di lihat kode di bawah ini :

<?php
   session_start();
   $width = 75; //Ukuran lebar
   $height = 25; //Tinggi
   $im = imagecreate($width, $height);
   $bg = imagecolorallocate($im, 0, 0, 0);
   $len = 5; //Panjang karakter 
   $chars = '12345abcdefg'; //Kombinasi huruf dan angka yang diacak
   $string = '';
   for ($i = 0; $i < $len; $i++) {
   $pos = rand(0, strlen($chars)-1);
   $string .= $chars{$pos};
   }
   $_SESSION['kodecap'] = $string; //hasil acak disimpan dalam session
//menambahkan titik2 gambar / noise
   $bgR = mt_rand(100, 200); $bgG = mt_rand(100, 200); $bgB = mt_rand(100, 200);
   $noise_color = imagecolorallocate($im, abs(255 - $bgR), abs(255 - $bgG), abs(255 - $bgB));
   for($i = 0; $i < ($width*$height) / 3; $i++) {
   imagefilledellipse($im, mt_rand(0,$width), mt_rand(0,$height), 3, rand(2,5), $noise_color);
   }
// proses membuat tulisan
   $text_color = imagecolorallocate($im, 240, 240, 240);
   $rand_x = rand(0, $width - 50);
   $rand_y = rand(0, $height - 15);
   imagestring($im, 12, $rand_x, $rand_y, $string, $text_color);
   header ("Content-type: image/png"); //Output format gambar
   imagepng($im);
?> 

Buat folder dengan nama captcha dan kemudian simpan dalam folder captcha dengan nama kodeacak.php, kemudian buat lagi file dengan kode di bawah ini :

<?php
   session_start();
   if($_POST['kodeacak']) {
   if($_SESSION['kodecap']==$_POST['kodeacak']) {
      echo "Benar"; } 
   else {
      echo "Salah"; }
   }
?>
<form id="FAcak" name="FAcak" method="post" action="kirim.php">
 <p>
  <input name="kodeval" type="text" id="kodeval" size="6" maxlength="6" />
  <img src="kodeacak.php" width="75" height="25" alt="Kode Acak" />
 </p>
 <p><input type="submit" name="button" id="button" value="Kirim" /></p>
</form>

Simpan kedalam folder captcha tadi dengan nama index.php kemudian copykan folder tersebut ke folder htdocs, kemudian jalankan di browser dengan memanggilnya localhost/captcha maka akan tampil form captcha dan input captcha yang muncul berada di samping form inputan.

Semoga Bermanfaat

sumber : www.zainalhakim.web.id
Previous
Next Post »