Membuat Captcha (Input Anti Spam) Sederhana

Unknown | 9:43:00 AM | 0 komentar

Pada saat Anda melakukan pengisian form, seperti buku tamu, registrasi email, atau lainnya, Anda biasanya akan diminta untuk mengisikan angka, huruf atau paduannya yang di generate secara random. Isian ini biasa disebut CAPTCHA.

CAPTCHA atau Completely Automated Public Turing test to tell Computers and Humans Apart, bertujuan untuk menentukan apakah user yang menginput adalah manusa atau tidak (bot/robot/program pengisian otomatis). Karena di khawatirkan terjadinya SPAM.

Nah pada kali ini, saya akan sharing pengetahuan kepada Anda untuk membuat CAPTCHA yang sederhana. Kita akan memanfaatkan ekstensi GD yang di miliki oleh PHP, kebetulan saya menggunakan PHP5 yang sudah satu paket pada XAMPP for Windows (untuk informasi lanjut tentang XAMPP silahkan baca di http://review-things.blogspot.com).

Pertama kita akan membuat image random teksnya dahulu, Nah, code untuk merandom teks atau pun gabungan teks dan angka bisa seperti berikut :

$str='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';

$rand = substr(str_shuffle($str), 0, 5);

Lalu yang kedua, agar berkesan lebih menarik dan random teks tadi tidak dapat di sorot/selection, kita akan menggabungkan random teks tadi dengan sebuah image.

Jadi…!, apakah kita akan memasukkan random teks tersebut kedalam sebuah image…….?.

Yap…!!!, Hal ini mirip dengan teknik Foto, yang biasanya terdapat teks di dalamnya. Seperti foto wisuda atau perkawinan Anda barang kali, Ho..ho…ho…. Jadi pengen cepet-cepet kawin nih. Hi…hi…hi…

Oke ini codenya silahkan di simpan dengan nama = insert_text_ke_image.php

session_start();//session ditambahkan agar dapat dilakukan ceking input isian

$str='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';

$rand = substr(str_shuffle($str), 0, 5);

$_SESSION['RandVal'] = md5($rand);

//load image, dan alokasikan warna

$img = imagecreatefromjpeg("images/butterfly4.jpg");//url gambar background

$black = imagecolorallocate($img,0,0,0);//untuk warna putih ganti 0 dengan 255, masih ingat bilagan hexa kan.

//Set font

$font = 'Verdana';

$size = 15;

setCenter($img, $size, 0, imagesy($img)-30, $white, $font, $rand);

//set header page

header('Content-type: image/jpeg');

//Cetak gambar

imagejpeg($img);

//hapus resources

imagedestroy($img);

//fungsi menset posisi ditengah

function setCenter($img, $size, $angle, $y, $col, $font, $txt)

{

$tbox = imagettfbbox($size, $angle, $font, $txt);

$txt_w = (int) imagesx($img);

$x = 30;

return imagettftext($img, $size, $angle, $x, $y, $col, $font, $txt);

}

?>

Nah hasilnya akan seperti ini :




Selanjutnya kita akan membuat halaman formnya dan simpan dengan nama formulir.php, contoh sederhananya :

Jika image tidak jelas, silahkan anda refresh [F5]<br /><br />
<img src="insert_text_ke_image2.php">

<form action="<?php $_SERVER['PHP_SELF'] ?>" method="get">
<br />
Kode : <input type="text" name="kode" /><br />
<input type="submit" value="OK" name="submit" />

</form>

Hasilnya akan seperti ini :

Nah, mudahkan …!!!. Anda dapat memodifikasi code diatas sesuai kebutuhan anda. Selamat mencoba.



Category:

About Wan Adamsyah Rival Baros:
Adam adalah seorang Profesional Blogger, Online Enteprenuer, Web Designer, Web Developer, IT Support and Trainer. Saya memulai blogging sejak 2006 dan memutuskan untuk menjadi profesional blogger di tahun 2009. Tulisan saya banyak bercerita mengenai Teknologi Informasi dan perkembangannya.

0 komentar