Oh no! Where's the JavaScript?
Your Web browser does not have JavaScript enabled or does not support JavaScript. Please enable JavaScript on your Web browser to properly view this Web site, or upgrade to a Web browser that does support JavaScript.
Sign In
Not a member yet? Click here to register.

Photo CAPTCHA identiPIC - Stop Spam


Print Track
identiPIC is a photo CAPTCHA system whereby a website visitor has to identify a picture to proceed. The system is typically used on web forms to block spambots. A human can identify a picture, a spambot cannot.

The web is awash with spambots that attack contact forms, guestbooks, forums etc. Up until now, the main line of defence against them was the CAPTCHA. A CAPTCHA is a test to tell humans apart from computers (spambots in this case) that relies on the user entering a string of characters presented to them in an image. This worked well for a while until the bots began to overcome them by reading them with OCR (optical character recognition) programs. Another problem with the traditional CAPTCHA is that they are sometimes difficult to read. The advantage of the identiPIC system is that a computer cannot tell what a picture is of but a human can clearly see what it is.

Using this system means that spam on your site will be drastically reduced, with the minimum inconvenience to genuine users.

This site demonstrates some photo CAPTCHA ideas and shows you how to implement them on your website. The code for this system is written in PHP and that is what is shown on this site but you could write a similar system in other languages.

To make your own identiPIC photo CAPTCHA like the demo above, put this HTML code on your form:

CodeDownload  
<table border="0">
<tr><td colspan="3">Security test.  Please identify the pictures:</td></tr>
<tr><td><img src="identiPIC_1.jpg" alt=""></td><td><img src="identiPIC_2.jpg" alt=""></td><td><img src="identiPIC_3.jpg" alt=""></td></tr>
<tr><td>
<select name="identiPIC_selected[1]">
<option value="">Click to identify</option>
<option>Apple</option>
<option>Cat</option>
<option>Clock</option>
<option>Dog</option>
<option>Flower</option>
<option>Fork</option>
<option>Hammer</option>
<option>Key</option>
<option>Ship</option>
<option>Tree</option>
</select></td><td>

<select name="identiPIC_selected[2]">
<option value="">Click to identify</option>
<option>Apple</option>
<option>Cat</option>
<option>Clock</option>
<option>Dog</option>
<option>Flower</option>
<option>Fork</option>
<option>Hammer</option>
<option>Key</option>
<option>Ship</option>
<option>Tree</option>
</select></td><td>

<select name="identiPIC_selected[3]">
<option value="">Click to identify</option>
<option>Apple</option>
<option>Cat</option>
<option>Clock</option>
<option>Dog</option>
<option>Flower</option>
<option>Fork</option>
<option>Hammer</option>
<option>Key</option>
<option>Ship</option>
<option>Tree</option>
</select></td></tr></table>



PHP script that handles form.

CodeDownload  
<?php

if(!isset($_REQUEST['identiPIC_selected'])){exit;}

$identiPIC[1] = "Apple";
$identiPIC[2] = "Flower";
$identiPIC[3] = "Fork";

if($_REQUEST['identiPIC_selected'] !== $identiPIC){print "You have failed to identify the pictures correctly.  Please try again.";  exit;}

// Continue with the rest of your script

?>



I've implemented the following code already for PHP-Fusion v7.01.XX. If you wish to try it out, download the file below and use.

The following script was tested and is currently used by PHPFusionMods.com

Source & Example: Here

Download: PHPFusionMods.com

0 replies

author NetriX
forumModifications and Requests - 8
replies1 post
viewed1,837 times
activeLast updated on 8 years ago
You can view all discussion threads in this forum.
You cannot set up a bounty in this discussion thread.
You can start a new discussion thread in this forum.
You cannot reply in this discussion thread.
You cannot start on a poll in this forum.
You cannot upload attachments in this forum.
You can download attachments in this forum.
You cannot up or down-vote on the post in this discussion thread.
Users who participated in discussion: NetriX