go top


  • Colection of 65 PHP scripts for $4.29 each

Get 65 PHP scripts in a bundle for $4.29 each!

View Offer

Captcha image verification

Tuesday, 6th December, 2011  /  PHP Tutorials  /  253 Comments
A good way to avoid automatic form submissions when creating a web form is to add some kind of verification. One of the best ways is to use an image verification, called also captcha. What it does is to dynamically create an image with a random string displayed on it. Then visitor is asked to type that string in a text field and once the form is submitted it checks if the string on the image matches the one inputted by the user. Because there is no easy way to read a text from an image (image recognition) this is a good way to protect your web forms from spammers.
For doing this CAPTCHA I would suggest using a session variable where you store the string generated and displayed on that dynamically generated image.

$text = rand(10000,99999);
$_SESSION["vercode"] = $text;
$height = 25;
$width = 65;

$image_p = imagecreate($width, $height);
$black = imagecolorallocate($image_p, 0, 0, 0);
$white = imagecolorallocate($image_p, 255, 255, 255);
$font_size = 14;

imagestring($image_p, $font_size, 5, 5, $text, $white);
imagejpeg($image_p, null, 80);

Save this code in a file called captcha.php. What this script does is to generate a random number from 10000 to 99999 and then assign it to $_SESSION['vercode']. Then it generates a 25x65 pixels image with black background and white text using size 14. So if you upload that captcha.php file on your web site and open http://www.site.com/captcha.php you will see an image displaying random integer. You will receive a new random integer every time you refresh that page.

Next we need to create our web form.

<form action="submit.php" method="post"> 
Comment: <textarea name="coment"></textarea><br>
Enter Code <img src="captcha.php"><input type="text" name="vercode" /><br>
<input type="submit" name="Submit" value="Submit" />

Above code will create a form with a single textarea box, randomly generated image using the captcha.php script and a text field where you will have to enter the verification code.

All we have to do now is to make the submit.php script which will check if the verification code you enter matches the one that has been randomly generated.

if ($_POST["vercode"] != $_SESSION["vercode"] OR $_SESSION["vercode"]=='') {
echo '<strong>Incorrect verification code.</strong><br>';
} else {
// add form data processing code here
echo '<strong>Verification successful.</strong><br>';
Share on:

253 Comments to "Captcha image verification"

faizun nazim

faizun nazim / October 31, 2023 at 11:33 am

Can you create for me the login and register page where the system need the image verification that download it from telegram?. After user download it, they need to insert the image to the system to successfully login and registered.


Kennethemuro / October 17, 2023 at 07:33 am

<a href=https://xn--80aaldytyc.xn--80adxhks>трулисити цена +в москве</a> - семаглутид 1 мг в наличии, оземпик германия


DavidFus / October 4, 2023 at 04:38 am

<a href=https://xn--80alrehlr.xn--80aswg>дулаглутид инструкция аналоги</a> - Оземпик 1мг в наличии, оземпик купить +в самаре


Stevenfaila / September 5, 2023 at 12:47 pm

<a href=https://xn--90abjnjbf.xn--p1ai/sozdanie-sajtov/>создание сайтов</a> - продвижение сайта яндекс, веб агентство


Charlieziz / July 27, 2023 at 06:50 am

<a href=https://xn--mga-sb-bva.com/>mega mp</a> - mega зеркало, mega sb сайт


Williamappof / July 9, 2023 at 16:42 pm

<a href=https://xn-----8kcaaomxdpelhyeeqjefp6c.xn--p1ai/uslugi/>Аренда яхт и катеров в Анапе</a> - Абрау-Дюрсо, Аренда яхт и катеров в Анапе


Diane#[NtecusuxtojukyQU,2,5] / March 31, 2023 at 09:02 am

Dispute your amusement!
In your area.
On liberated! You'll look upon
It doesn't requisite where you red-hot, you desire greater than people you covet to meet.
Be it the some city. Unshakeable is also anticyclone brazen through the beefy cities. Footprint without dilly-dallying on account of untenanted
and without trustworthiness, and start searching in your city.
<urlhttps>//bit.ly/33IFJtj]Click here!


Andrewbic / January 28, 2023 at 12:51 pm

<a href=https://xn--80akjddcefjja1c.xn--p1ai/catalog/nakleyki-na-kvadrocikly/>наклейки на квадроцикл cf moto</a> - наклейки на квадроцикл stels, наклейки на квадроцикл

ingef&auml;ra citron honung gurkmeja

ingef&auml;ra citron honung gurkmeja / January 23, 2022 at 13:45 pm

You're so awesome! I don't believe I've truly read a single thing like that before. So good to discover another person with some genuine thoughts on this subject matter. Seriously.. thank you for starting this up. This site is something that's needed on the internet, someone with a bit of originality! ingefära citron honung gurkmeja tumbt.teswomango.com/map8.php


pankaj / August 18, 2017 at 09:56 am

Image is not displaying broken image error occur . Not loading image from captcha.php file


salil / December 12, 2017 at 08:00 am

change the $fontsize=5 because $fontsize can be from 1 to 5


salil / December 12, 2017 at 08:04 am

Before calling imagejpeg() function place header("content-type:image/jpeg")
and after imagejpeg() put imagedestroy($image_p)

Add your comment


    Please, be polite and helpful and do not spam or offend others! We promise you will be treated the same way!

    Log in to your account to post your comments. If you still haven't joined our community yet, you can create your FREE account now!

    Posting tip:
    If you use code in your comments, please put it in these tags [php], [sql], [css], [js] PHP code example: [php] echo date("Y-m-d"); [/php]

    Thank you,
    PHPJabbers Team

    Free Scripts

    Add great new functionalities to your website with our Free Scripts collection.

    Free scripts

    PHP Scripts

    Check our extensive collection of top-notch PHP Scripts that will enhance your website!

    Commercial PHP scripts