Mengubah META TAG di Joomla Mekanisme Mendapatkan Support Teknis Rumahweb
Aug 22

Pengertian :
Captcha merupakan singkatan dari "Completely Automated Public Turing test to tell Computers and Humans Apart" ( Wikipedia ). dan dibuat untuk membedakan antara mesin ( bot ) dan manusia.

Implementasi :
Captcha sering kali digunakan untuk 'mengamankan' form dari serangan bot, contoh : pada form kontak, form pendaftaran, dsb. Kali ini, kita akan mencoba membuat sebuah simple captcha dengan menggunakan test matematika sederhana ( penjumlahan ).

file : captcha.php

PHP:
  1. <?php
  2. $gbr = "img.jpg"; //gambar untuk background
  3. //warna
  4. $merah = "255"; // range nya dari 0 - 255
  5. $ijo = "255"; //range nya = diatas :D
  6. $biru = "255";
  7.  
  8. //--- mari menggambar ----
  9. $acak1 = mt_rand(3,10); // nilai acak 1
  10. $acak2 = mt_rand(6,20); // nilai acak 2
  11. $strtampil = $acak1." + ".$acak2;
  12. $hasil = $acak1 + $acak2;
  13. $bikingbr =imagecreatefromjpeg($gbr);
  14. $teks = imagecolorallocate($bikingbr, $merah, $ijo, $biru);
  15. imagestring($bikingbr, 5, 20, 10, $strtampil, $teks);
  16. $_SESSION['capcay'] = $hasil;
  17. header("Content-type: image/jpeg");
  18. imagejpeg($bikingbr);
  19. ?>

Script diatas akan menjumlahkan nilai random ( acak ). Nilai acak tersebut didapat dari fungsi mt_rand(). Hasil dari penjumlahan nilai acak tersebut akan di simpan kedalam sebuah session yang nantinya akan berfungsi untuk melakukan pengecekan input dari form.

file : form.php

PHP:
  1. <?php
  2. if(isset($_POST['cek'])){
  3.    if($_POST['ccek'] == $_SESSION['capcay']){
  4.       echo "Lolos Validasi";
  5.    } else {
  6.       echo "Salah";
  7.    }
  8. }
  9. ?>
  10. <form action="" method="post">
  11.   <img src="captcha.php"/> <br />
  12. <input name="ccek" type="text"/>
  13. <input name="cek" type="submit" value="Cek..!!"/>
  14. </form>

File form.php adalah file yang digunakan sebagai input. Ketika tombol 'submit' ditekan, maka script akan melakukan pengecekan apakah input yang dimasukkan sudah sama dengan session yang dihasilkan sebelumnya pada file captcha.php

Demo dari kedua file diatas, dapat ditemukan disini .

Selamat mencoba ;)

Leave a Reply

You must be logged in to post a comment.