Create Captcha Image in PHP

By CampCodes Administrator

Updated on:

create captcha image in php

Create Captcha Image in PHP with Source Code

In this tutorial, we will create a Create Captcha Image using PHP. This code will generate a captcha image that needed to be solved by the user. The code use imagettftext() a PHP built-in tool that makes image data manually that write the captcha code and store the data to PHP SESSION. This is a user-friendly kind of program feel free to modify it.

We will be using PHP as a scripting language and interpreter that is used primarily on any web server, including xamp, wamp, etc. It is being used to any popular websites, and it has a modern technology that can easily be used by the next generation.

Getting Started:

First, you have to download & install XAMPP or any local server that runs PHP scripts. Here’s the link for the XAMPP server https://www.apachefriends.org/index.html.

And, this is the link for the bootstrap that I used for the layout design https://getbootstrap.com/.

Creating The Interface

This is where we will create a simple form for our application. To create the forms, copy and write it into your text editor, then save it as shown below. index.php

<!DOCTYPE html>
<?php session_start()?>
<html lang="en">
    <head>
        <meta charset="UTF-8" name="viewport" content="width=device-width, initial-scale=1" />
        <link rel="stylesheet" type="text/css" href="css/bootstrap.css"/>
    </head>
<body>
    <nav class="navbar navbar-default">
        <div class="container-fluid">
            <a class="navbar-brand" href="https://sourcecodester.com">Sourcecodester</a>
        </div>
    </nav>
    <div class="col-md-3"></div>
    <div class="col-md-6 well">
        <h3 class="text-primary">PHP - Create Captcha Image<h3/>
        <hr style="border-top:1px dotted #ccc;"/>
        <div class="col-md-3"></div>	
        <div class="col-md-6">
            <a class="btn btn-success" href="image.php">Create Captcha Image</a>
            <br />
            <br />
            <img src="images/captcha.jpg" />
        </div>	
    </div>
</body>
</html>

image.php

<!DOCTYPE html>
<?php session_start()?>
<html lang="en">
    <head>
        <meta charset="UTF-8" name="viewport" content="width=device-width, initial-scale=1" />
        <link rel="stylesheet" type="text/css" href="css/bootstrap.css"/>
    </head>
<body>
    <nav class="navbar navbar-default">
        <div class="container-fluid">
            <a class="navbar-brand" href="https://sourcecodester.com">Sourcecodester</a>
        </div>
    </nav>
    <div class="col-md-3"></div>
    <div class="col-md-6 well">
        <h3 class="text-primary">PHP - Create Captcha Image<h3/>
        <hr style="border-top:1px dotted #ccc;"/>
        <div class="col-md-3"></div>	
        <div class="col-md-6">
            <form action="" method="POST">
                <h3>Solve Captcha</h3>
                <center><img src="captcha.php" /></center>
                <br />
                <?php include'solve.php'?>
                <div class="form-group">
                    <input type="number" min="0" class="form-control" name="captcha" required="required"/>
                    <center><button class="btn btn-primary" name="solve">Solve</button></center>
                </div>
            </form>
        </div>	
    </div>
</body>
</html>

Creating the Main Function

This code contains the main function of the application. This code will create and display a captcha image when the button is clicked. To make this just copy and write these block of codes below inside the text editor, then save it as shown below.
solve.php

<?php
    if(ISSET($_POST['solve'])){
        $captcha = $_POST['captcha'];
        if($_SESSION['captcha'] == $captcha){
            echo "<center><label class='text-success'>Congaratulation! You solve the captacha</label></center>";
        }else{
            echo "<center><label class='text-danger'>Invalid captcha!</label></center>";
        }
    }
?>

captcha.php

READ ALSO:   Passing Data To Bootstrap Modal in PHP

<?php
    session_start();
 
    $random = rand(1, 9).rand(1, 9).rand(1, 9).rand(1, 9);
 
    $_SESSION['captcha'] = $random;
 
    $captcha = imagecreatefromjpeg("images/captcha.jpg");
    $color = imagecolorallocate($captcha, 0, 0, 0);
    $font = realpath('code.otf');
    imagettftext($captcha, 20, 0, rand(30, 180), rand(20, 70), $color, $font, $random );
    imagepng($captcha);
    imagedestroy($captcha);
?>

There you have it we successfully created Create Captcha Image using PHP. I hope that this simple tutorial help you to what you are looking for. For more updates and tutorials just kindly visit this site. Enjoy Coding!

Download Here

Leave a Comment