Untuk membuat captcha yang akan saya berikan pada tutorial kali ini diperlukan beberapa script, gambar, dan font huruf.
Script untuk membuat captcha: (captcha_image.php)
<?
session_start();
$random=md5(microtime());
$random=substr($random,0,5);
$NewImage =imagecreatefrompng("captcha.png");
$LineColor1=imagecolorallocate($NewImage,100,100,255);
$LineColor2=imagecolorallocate($NewImage,255,125,0);
$TextColor=imagecolorallocate($NewImage,255,100,100);
$text_x=rand(0,125);
$text_y=rand(20,75);
$line1_x1=rand(0,199);
$line1_x2=$text_x-5;
$line1_y1=rand(0,80);
$line1_y2=$text_y-5;
$font='font.ttf';
imageline($NewImage,0,0,$line1_x1,$line1_y2,$LineColor2);
imagettftext($NewImage,18,0,$text_x,$text_y,$TextColor, $font, $random);
imageline($NewImage,$line1_x1,$line1_y1,$line1_x2,$line1_y2,$LineColor1);
imageline($NewImage,$line1_x1,$line1_y1,200,0,$LineColor1);
imageline($NewImage,$line1_x1,40,100,$line1_y2,$LineColor2);
$_SESSION['key']=$random;
header("Content-type: image/png");
imagepng($NewImage);
imagedestroy($NewImage);
?>
Pada script diatas membutuhkan sebuah gambar sebagai background captcha (captcha.png) dan font huruf (font.ttf). Disini saya menggunakan gambar berformat .png karena gambar yang dihasilkan lebih baik dari format .jpg. Sehingga perintah yang digunakan untuk membuat gambar yaitu
imagecreatefrompng("captcha.png")dan perintah untuk menampilkan gambar pada browser yaitu
imagepng($NewImage);jika anda ingin menggunakan file .jpg maka gunakan perintah
imagecreatefromjpeg("captcha.jpg")dan
imagejpeg($NewImage);
Script form memasukan dan mencocokan capcta: (form.php)
<?
session_start();
?>
<html>
<head>
<title>Demo Captcha </title>
</head>
<body onLoad="return focuson();">
<center>
<script type="text/javascript" language="javascript">
function focuson()
{document.form1.number.focus()}
function check()
{
if(document.form1.number.value=='')
{
alert("Mohon masukan kode pada gambar");
document.form1.number.focus();
return false;
}
}
</script>
<?
if(isset($_REQUEST['Submit']))
{
$key=$_SESSION['key'];
$number = $_REQUEST['number'];
if($number!=$key)
{echo"Kode yang anda masukan salah!";}
else
{echo"Kode yang anda masukan benar!";}
}
?>
<form name="form1" method="post" action="" onsubmit="return check();">
<img src="captcha_image.php" /><br>
<input name="number" type="text" id="number" />
<input name="Submit" type="submit" value="Submit" />
</form>
<?php
$random=md5(microtime());
$random=substr($random,0,5);
?>
</center>
</body>
</html>
Selesai..!!
Untuk melihat demo captha ini silahkan kunjungi: catment.co.cc/demo/captcha
Untuk mendownload file-file yang dibutuhkan silahkan: [DOWNLOAD]