Membuat captcha dengan php

Membuat captcha dengan php

CAPTCHA digunakan untuk melindungi pengiriman otomatis melalui form oleh mesin-mesin -nakal- yang kirimanya biasanya disebut spam. CAPTCHA ini memastikan bahwa yang mengirimkan data adalah human atau manusia. Anda mungkin sering menemui ini pada saat anda mengisi formulir secara online. Bentuknya beragam ada yang bentuk gambar angka, huruf, gabungan angka dan huruf secara acak, bahkan model perhitungan angka.

Berikut ini cara membuat captcha dengan php. Silahkan lihat kode berikut :

<?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);
?> 

Copy kode tersebut dan simpan dalam file kodeacak.php

Kemudian kita buat lagi sebuah file dengan kode berikut :

<?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="kodeacak" type="text" id="kodeacak" 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 file dengan nama kirim.php. Silahkan anda coba panggil file kirim.php dan isi sesuai dengan kode yang muncul disamping inputan.

Silahkan download contoh lengkapnya disini. Download Contoh Membuat captcha dengan php

Semoga bermanfaat

Zainal Hakim

** Bebas disunting dengan menyebutkan sumber **

Komentar

Halaman Lainya

Kiriman terbaru