Creating a PHP captcha system

0Comments

This is a very useful, yet simple PHP script which keeps the spambots away from your information.

Firstly, create a file called captcha.php, and insert this code:

<?php
header("Content-type: image/png");
$string = "abcdefghijklmnopqrstuvwxyz0123456789";
for($i=0;$i<6;$i++){
    $pos = rand(0,36);
    $str .= $string{$pos};
}
 
$img_handle = ImageCreate (60, 20) or die ("Cannot Create image");
//Image size (x,y)
$back_color = ImageColorAllocate($img_handle, 255, 255, 255);
//Background color RBG
$txt_color = ImageColorAllocate($img_handle, 0, 0, 0);
//Text Color RBG
ImageString($img_handle, 31, 5, 0, $str, $txt_color);
Imagepng($img_handle);
 
session_start();
$_SESSION['img_number'] = $str;
?>


We’ve now created an image, using PHP, to display random letters and numbers.

Now create a file called verify.php, and insert this code:

<?php
session_start();
if($_SESSION['img_number'] != $_POST['num']){
    echo'Error!<br>
    <a href="form.php">Try Again</a><br>';
}else{
    echo'Success!<br>
    <a href="form.php">Go back</a><br>;
}
?>

Now we’ve just made the script that verifies what the user has just entered and tells them whether it worked.

Here’s the simplest part, the HTML:

<form action="verify.php" method="post">
    <img alt="Random Number" src="image.php"> 
    <input type="text" name="num"><br>
    <input type="submit" name="submit" value="Check">
</form>

Hope this helped. :)