Creating a CAPTCHA with PHP-1

Posted: November 6, 2010 in PHP
Tags:

This tutorial will show you how to create a form with Captcha.

1. Sessions in PHP are started by using the session_start() function. Like the setcookie( ) function, the session_start( ) function must come before any HTML, including blank lines, on the page.
Code:

<?php session_start(); ?>

2.Imagecreatefrompng :: create a new image from file or URL.
Code:

$img = imagecreatefrompng('black.png');

3.The function imagecolorallocate creates a color using RGB (red,green,blue) format.
Code:

$white = imagecolorallocate($img, 255, 255, 255);

4. Displaying the random text on the captcha image
Code:

$numero = rand(100, 999);

5. Check if the security code and the session value are not blank and if the input text matches the stored text.
Code:

if(($_POST['check']) == $_SESSION['check'])
{ echo 'Input OK';
}else{
echo 'Input Wrong';
}

Files

black.png 

index.php:
Code:

<form method="POST" action="cc.php">
<img src="captchas.php"> <br>
<input type="text" size="10" name="check"> <br>
<input type="submit" name="submit" value="submit">
</form>

captchas.php:
Code:

<?php
session_start();
//imagecreate -- Create a new palette based image
$img = imagecreate(40, 20);
//displaying the random text on the captcha image
$black = imagecolorallocate($img, 0, 0, 0);
$numero = rand(100, 999);
$number = $black . $numero;
$_SESSION['check'] = ($numero);

$white = imagecolorallocate($img, 255, 255, 255);
imagestring($img, 10, 8, 3, $numero, $white);
header ("Content-type: image/png");
imagepng($img);
?>

cc.php:
Code:

<?php
//Sessions in PHP are started by using the
//session_start() function.
//Like the setcookie( ) function,
//the session_start function must come before any HTML,
//including blank lines, on the page.session_start();
//Check if the security code and
//the session value are not blank
//and if the input text matches the stored text
if(($_POST['check']) == $_SESSION['check']) {
echo 'Input OK';
}else{
echo 'Input Wrong';
}

 

Enjoy

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s