captcha security images

Jan 19th, 2008 | Posted by

Sebagian besar dari programmer pasti sudah mengetahui, bahkan sudah banyak yang mampu membuat kode keamanan untuk menangani spam atau biasa dikenal sebagai Completely Automated Public Turing test to tell Computers and Humans Apart (Captcha) :thumbs . Captcha berfungsi sebagai penguji otomatis untuk membedakan antara komputer dan manusia. Algoritma CAPTCHA ini digunakan untuk melawan spambot, yakni sebuah script yang menjelajahi beberapa aplikasi forum diskusi, shoutbox, atau guestbook dan melakukan spamming di sana. Captcha bisa ditemui hampir di semua website, misalnya saja saat registrasi email pada yahoo, google atau yang lainnya.

Pada kesempatan kali ini saya akan memberikan satu contoh mudah dalam membuat captcha. Proses pertama adalah membuat satu file php yang berisi script berikut :

File : captcha.php

<?php
session_start();
$outputcharacters = 6;
$range = “2347ABCDEFGHJKLMNPRTVWXY”;
$i = 0;
while ($i < $outputcharacters)
{
$code .= substr($range, mt_rand(0, strlen($range)-1), 1);
$i++;
}
$_SESSION["security_code"] = $code;

//simple captcha just create image.
header(“Content-type: image/png”);

$im = imagecreate(60, 20);

// black background and orange text
$bg = imagecolorallocate($im, 0, 0, 0);
$textcolor = imagecolorallocate($im, 242, 193, 0);

// write the string at the middle
imagestring($im, 5, 3, 2, $code, $textcolor);
imagepng($im);
imagedestroy($im);

?>

File diatas akan dipakai untuk create-image-dynamic berdasarkan karakter2 yang ada pada variable range ($range) secara random yang kemudian di simpan pada session. Oleh karena itu, pada saat pengisian form at least kita harus menampilkan image-dinamic tersebut. Misalnya seperti ini :

File : index.php

<?php
echo ”
<form action=action.php method=post>
Pesan: <input type=text name=message><br>
<img src=captcha.php><br>
Security Code: <input id=security_code name=security_code type=text><br>
<input type=submit name=submit value=Submit>
</form>”;
?>

Sedangkan pada proses berikutnya adalah validasi session dengan kode yang dikirim.

File : action.php

<?php
session_start();

if( isset($_POST['submit']))
{
if(($_SESSION['security_code'] == $_POST['security_code']) && (!empty($_SESSION['security_code'])) )
{
echo ‘Terimakasih Pesan anda: “‘.$_POST['message'].’”‘;
}
else
{
echo ‘Sorry, anda memasukkan security code yang salah<br />’;
include “index.php”;
}
}
else
{
include “index.php”;
}
?>

Related posts:

  1. upload file ke server pada PHP
Tags:
No comments yet.
*