0% found this document useful (0 votes)
248 views3 pages

Create A Simple Anti-Spam CAPTCHA Verification Code

This document provides two functions for creating simple CAPTCHA verification codes in PHP to prevent spam submissions. The first function generates two random numbers between 1-50, sums them, and stores the result in a session variable. It returns an array with the two numbers to display in the CAPTCHA question. The second function generates four random unique numbers between 1-100, finds the lowest number, stores it in a session, and returns the array of numbers for display. Both functions check sessions to prevent duplicate CAPTCHAs on page refreshes and verify user submissions against the stored session value.

Uploaded by

MarPlo
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
248 views3 pages

Create A Simple Anti-Spam CAPTCHA Verification Code

This document provides two functions for creating simple CAPTCHA verification codes in PHP to prevent spam submissions. The first function generates two random numbers between 1-50, sums them, and stores the result in a session variable. It returns an array with the two numbers to display in the CAPTCHA question. The second function generates four random unique numbers between 1-100, finds the lowest number, stores it in a session, and returns the array of numbers for display. Both functions check sessions to prevent duplicate CAPTCHAs on page refreshes and verify user submissions against the stored session value.

Uploaded by

MarPlo
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 3

Create a simple anti-spam CAPTCHA verification code

This tutorial shows you how to create a simple anti-spam CAPTCHA verification code in PHP (CAPTCHA stands for: Completely Automated Public Turing test to tell Computers and Humans Apart). Two functions for CAPTCHA: the sum of two numbers, and the lowest numbers. The ideea is simple: before to generate the HTML code with the CAPTCHA question, and the input field for answer, we create the captcha code and save the correct answer into a $_SESSION. Then, when we want to check the captcha, we check if that session exists, and if it is the same with the answer added by the user.

CAPTCHA with sum of two numbers


Here is a function that can be used to create a CAPTCHA verification code, and save it in session; the sum of two random numbers between 1 and 50.
// creates a SESSION with the sum of two numbers. Receives the session name // returns an array with the two numbers // From: // http://coursesweb.net/php-mysql/ function setCaptcha($ses_name) { $nrs = array(mt_rand(1, 50), rand(1, 50)); // array with 2 random numbers, between 1 and 50 // if session exists, delete it, sets session with the sum of $nrs[0] and $nrs[1] if(isset($_SESSION[$ses_name])) { unset($_SESSION[$ses_name]); } $_SESSION[$ses_name] = $nrs[0] + $nrs[1]; return $nrs; } // returns the array with the numbers

In the PHP script that uses $_SESSION you must have session_start() at the beginning of the php file. Example usage of setCaptcha() function The following code generates a HTML page with a form with CAPTCHA verification code. The captcha is changed every time the page is generated.
<?php if(!isset($_SESSION)) session_start(); // creates a SESSION with the sum of two numbers. Receives the session name // returns an array with the two numbers // From: // http://coursesweb.net/php-mysql/ function setCaptcha($ses_name) { $nrs = array(mt_rand(1, 50), rand(1, 50)); // array with 2 random numbers, between 1 and 50 // if session exists, delete it, sets session with the sum of $nrs[0] and $nrs[1] if(isset($_SESSION[$ses_name])) { unset($_SESSION[$ses_name]); } $_SESSION[$ses_name] = $nrs[0] + $nrs[1]; return $nrs; } // returns the array with the numbers

// call the function to set the captcha answer in $_SESSION['captcha'], and gets the numbers $nrs = setCaptcha('captcha'); // sets the captcha question $ver_question = $nrs[0] .'&nbsp;+&nbsp;'. $nrs[1]; ?> <!doctype html> <html lang="en"> <head> <meta charset="utf-8" /> <title>Captcha anti-spam verification PHP Tutorial http://CoursesWeb.net/</title> <meta name="description" content="PHP Tutorial, how to create simple a Captcha anti-spam verification, from http://CoursesWeb.net/" /> <meta name="keywords" content="php tutorial, captcha, coursesweb.net" /> </head> <body> <form action="some_file.php" method="post"> Name: <input type="text" name="yname" /><br/> What is the sum of: <span style="font-weight:800; font-size:1.1em; color:#0001e8;"> <?php echo $ver_question; ?> </span> <input type="text" name="vcptca" size="3" /><br/> <input type="submit" name="fsbmt" value="send" /> </form> </body> </html>

- Now in the "some_file.php" we check if the form field is submited, if the $_SESSION['captcha'] exists and it is equal to the value from $_POST['vcptca'] (the field in which the user adds the verification answer).
<?php if(!isset($_SESSION)) session_start(); // if form with $_POST['vcptca'] is submited and $_SESSION['captcha'] exists if(isset($_POST['vcptca']) && isset($_SESSION['captcha'])) { // if the value added in 'vcptca' is equal with the value stored in session outputs Correct // otherwise, outputs Incorrect if($_POST['vcptca'] == $_SESSION['captcha']) { echo 'Correct '. $_SESSION['captcha']; } else { echo 'Incorrect answer.'; } } else { echo 'No form submited'; }

CAPTCHA with lowest number


Here is another function for making CAPTCHA verification. Returns an array with 4 unique

numbers, and the answer stored in $_SESSION is the lowest number between these four numbers.
// creates a SESSION with the lowest number between four numbers. Receives the session name // returns an array with the four numbers // From: // http://coursesweb.net/php-mysql/ function setCaptcha2($ses_name) { // creates an array with values from 1 to 100 $nrs = range(1, 100); // randomizes the order of the elements in $nrs, extracts and keeps the first 4 items shuffle($nrs); $nrs = array_slice($nrs, 0, 4); // if session exists, delete it, sets session with the lowest number if(isset($_SESSION[$ses_name])) { unset($_SESSION[$ses_name]); } $_SESSION[$ses_name] = min($nrs); return $nrs; } // returns the array with the numbers

Then, just calls this function, setCaptcha2(), to get the array with 4 numbers (the lowest number will be stored in $_SESSION), and use implode() to get a string with the numbers, to add it in the verification question.
<?php // Here add the setCaptcha2() function // sets the captcha answer in $_SESSION['captcha'], and gets the numbers $nrs = setCaptcha2('captcha'); // sets the string with the numbers for verification question $ver_question = 'Add the lowest number ('. implode(', ', $nrs) .')'; echo $ver_question; // displays the string

You might also like