How to setup an image verification using PHP
To setup image verification all you need is the GD library enabled. Here's how the image verification works:
1] The verification code is auto-generated using the rand() function and stored in a session variable. For added security, you can store the code in an encrypted format.
2] The page on which you need the verification code calls the script
3] The visitor enters the code which is then checked against the stored session variable
The first thing to do is to generate the verification code and store it in a session variable, this can be done using the following
<?php
//Start the session
@session_start();
//Generate a 5 character code
// the rand() function will generate a random number between 1 to 99999
// The MD5 function will encrypt the random number
// The substr function will provide a 5 character random code
$code = substr(md5(rand(1,99999)),11,5);
// This code is then encrypted using the MD5 function and stored in the session variable called enc_string
$_SESSION['enc_string'] = md5($code);
?>
The next phase is to create an image and place this code on the image. Here is the code to create an image:
<?php
// Create the image
$im = imagecreatetruecolor(150, 50);
// Create some colors
$background = imagecolorallocate($im, 255, 255, 255);
$fontcolor = imagecolorallocate($im, 1, $1, 1);
//Paint the image with the background color
imagefilledrectangle($im, 0, 0, 150,329, $background);
//write the code on the image
//we will need a ttf font for the text, pick anyone you like and upload it in the same folder where this script resides.
$font = "arial.ttf";
//set position
$x = 5;
$y = 35;
//add the code
for($i = 0; $i <strlen($code); $i )
{
imagettftext($im, 50, 0, $x, $y, $watermark , $font, substr($code,$i,1));
$x = $x 29;
}
// Using imagepng() results in clearer text compared with imagejpeg()
imagepng($im);
imagedestroy($im);
?>
Save this file as VerifyCode.php.
To display the verification code call this file using the following
<img src='VerifyCode.php'>
When the visitor enters the verification code, simple encrypt it using the MD5 function and check it against the session variable that we defined earlier.