Over the years, I have received many requests from webmasters to add some sort of spam filtering capability to the contact form generated by the Feedback Form Wizard. The reason, of course, is that spammers nowadays send automated computer programs, often called "spam bots", to scour the web for contact forms to dump spam into. As such, if your email software or email service doesn't have extensive spam removal facilities, you will probably be inundated by spam submitted through your own contact form.
This article shows you how to add a basic spam reducing facility, called a CAPTCHA test, to the contact form generated by the wizard. You have probably encountered such tests before: after filling in a form, you are required to complete some task, such as enter a string of letters or click pictures of a particular object from a selection of images, to prove that you are a human and not a spam bot. If you don't know what I'm talking about, take a look at either the hCaptcha demo or the ReCAPTCHA demo.
CAPTCHA stands for "Completely Automated Public Turing test to tell Computers and Humans Apart". The idea is to create a test that any human can pass easily but computer programs will fail. It is useful for things like contact forms since you want humans to be able to send you feedback, but don't want spam programs to send you junk mail.
There are many different types of CAPTCHA tests around. One common test places a series of words in a graphical image and asks your human visitor to enter the words he/she sees. Another displays a set of pictures and asks the user to choose the ones that depict a particular object (eg cars, signs, etc). The hope is that most computer programs will fail it, since they can't actually "see" anything.
Of course this is not foolproof. There are a number of ways to defeat it, such as to incorporate optical character recognition (OCR) technology into the spam bots, employ cheap (human) labour to decode it, etc. However, the plan is that having such a test will at least reduce some of the spam entering your mail box by weeding out the less advanced spam bots surfing the Internet.
This article is for the ordinary non-technical webmaster, who simply wants to add a CAPTCHA test to his/her web form. It is NOT for programmers who want to learn how to implement their own CAPTCHA test.
If you are a programmer, looking for a way to create your own CAPTCHA test, you may want to read the following, more relevant, articles:
If you don't want to reinvent the wheel, you may also be interested in the Free PHP CAPTCHA Scripts page to see how others have implemented it.
Before you rush out to add a CAPTCHA test, note that there are important disadvantages to adding it.
By default, the standard form created by the Feedback Form Wizard (when you don't enable the CAPTCHA test) is totally self-reliant. That is, as long as your website is running, your feedback form will also be running. If your website is down, then of course your form will also be down. But then, so will the rest of your site, so you don't have to worry about visitors going to your feedback form and finding that it doesn't work.
However, if you enable the CAPTCHA test, the latter will become dependent on a third party service, whether hCaptcha or ReCAPTCHA, depending on which option you pick. They supply the pictures and questions that will be shown on your form. The answers given by your visitor to the CAPTCHA challenge will also be sent to the CAPTCHA service for checking. The service will then inform the feedback form script whether the user answered the question correctly.
This means that if the CAPTCHA service is bogged down in some way, the display of your feedback form will become very sluggish (because the pictures will load very slowly, or perhaps even fail to load). If the network connection between your website and the CAPTCHA service has problems, your form will not work at all (since the script won't be able to find out how the visitor performed). If the CAPTCHA service ever closes, your visitors will no longer be able to successfully send you feedback.
And you can't rely on your users to tell you that there's a problem with your form. After all, it's your contact form that has problems, so they won't be able to reach you at all.
Having said that, before you give up in despair, the two CAPTCHA services provided by the Feedback Form Wizard appear to be used by lots of websites all over the world, seemingly without problems. They have also worked flawlessly when I tested them. But that doesn't mean bad things can't happen in the future. You will just have to decide for yourself whether you want to take the risk or not.
Most CAPTCHA tests have a major flaw. Because of their visual nature, the blind are unable to answer them. Fortunately, both hCaptcha and ReCAPTCHA provide alternatives for those who are blind.
The hCaptcha service provides a free "Privacy Pass" option, which the blind, as well as the deaf-and-blind, can log into to allow them to pass the CAPTCHA test. The ReCAPTCHA service only provides an audio test, so the blind can listen to and transcribe what is said in the sound file to show they are not spam bots. This probably means that if you use ReCAPTCHA, a visitor who is both deaf and blind, surfing the web using tactile displays (ie, Braille displays), will probably be unable to use your form.
Please bear these things in mind before you rush out to enable any of the CAPTCHA options in the Wizard. As you scrabble about under an avalanche of spam, looking for a way to solve your spam problems, remember that this solution may cause others problems.
All the CAPTCHA tests require your visitors to have JavaScript enabled in their web browsers. This is a built-in facility in modern web browsers, that is enabled by default, so this requirement should not affect the majority of your visitors.
However, there are some people who surf the Internet with JavaScript disabled (possibly for security reasons, since it is sometimes used by malware-infected sites to attack visitors, and maybe also to speed up the loading of websites). As such, these users will be unable to send you any feedback.
Where the standard feedback form script (that is, one without any CAPTCHA test) is concerned, nothing your visitors send to you is ever transmitted to me. You also get to download the script and host it on your website, giving you physical control over it. That is to say, I will not be able to reach into your copy of the script and make it do something different. If you are programming savvy, you can even examine the underlying source code of your copy, and once you are assured it is harmless and does only what it says, you know it will remain so, since I no longer have any access to it and cannot change it.
If you enable the CAPTCHA facility, the CAPTCHA script from the service you select will load directly on the web page containing your form. This script, however, is hosted on the CAPTCHA service's site. Neither you nor I have physical control of it. By including it on your page, it now has (potentially) the power to do anything it likes. For example, it can modify your page (which it actually does, in order to issue the CAPTCHA test). If it wants to, it can even do things like record your visitors' typing and so get access to the messages they send to you.
In fact, even if it doesn't do anything nefarious now, you cannot have the same level of assurance that you have with a script over which you have physical control, since at any point, the person hosting it can change it behind your back without notice to you.
Note that I am not saying anything new that experienced webmasters don't already know. It applies to any JavaScript that you load on your page that is hosted elsewhere (and is thus controlled by someone else), including the Google AdSense advertisements that you see everywhere on the Internet, such as this very page itself.
Whether this point matters to you or not probably depends on how you expect your feedback form to be used. It also depends on how much you trust the person or persons hosting the script, not only to act with integrity (and continue to do so over time), but also to have sufficient competence in making sure that the script is not hacked by others.
I find CAPTCHA challenges annoying at the best of times. And I am sure I am not alone. To add insult to injury, although these tests are meant to be easy for people to complete, some of them can prove difficult for humans to do as well. The latter include challenges that require some local cultural or linguistic knowledge that are specific only to a certain part of the world.
For example, I have encountered ReCAPTCHA tests that ask the user to click pictures of "school buses", by which they actually mean to click pictures of school buses as found in the USA, since apparently school buses in that country have a specific uniform appearance and colour (or "color" in US English), and the ReCAPTCHA developers didn't realise that the rest of the world do things differently. There are also those ReCAPTCHA challenges that ask the user to click pictures of a "crosswalk" without explaining what that is. For those who live outside the USA, a "crosswalk" is apparently the US term for a zebra crossing (the British English equivalent). (Inconsistently though, when their test asks to identify "cars", a word that means the same thing across all variants of English, they take the trouble to show a sample picture of a car, something they don't do with the more problematic words.)
Tests like those increase the annoyance and frustration of your users, even above the level already felt when encountering a CAPTCHA challenge, so much so that they may just give up and abandon the message they were trying to send to you.
That said, I have not encountered such problems with the hCaptcha tests. The ones that I have tried have invariably showed a sample picture of what they are talking about, so the need for localized knowledge about a specific part of the world does not occur with them. (Or, at least, it did not when I tested it. I have no idea if this is true all the time.)
If your email server and software have sufficiently good spam filters that have warded off spam in the past, and you think you don't really need the CAPTCHA facility, consider not including it. Otherwise, you may be introducing a problematic cure for a non-existent disease. But it's up to you, of course. I just wanted to make sure you are aware of these caveats, so that you can make an informed decision.
To enable the CAPTCHA option in the feedback form generated by the wizard, do the following.
The Feedback Form Wizard can generate the code needed for two different CAPTCHA services, ReCAPTCHA and hCaptcha. Decide which service you want, and sign up with them. (For those who are thinking, "How? Where do I go?", just click the relevant link in the first sentence of this paragraph to get there.)
If you want to take a look at what their CAPTCHA challenges look like on a form before deciding, see the ReCAPTCHA v2 checkbox demo, ReCAPTCHA v2 invisible demo and the hCaptcha demo.
Both services are free, or at least they were when I wrote this article. In fact, hCaptcha even says that they will pay you for the CAPTCHAs solved by your visitors. If either of these services stops being free, please let me know, and I will remove that option from the Wizard. You will be required to provide them your email address. ReCAPTCHA also requires that you tell them your website's domain name. The latter seems to be optional for hCaptcha.
For ReCAPTCHA, choose either the ReCAPTCHA v2 checkbox option or the Invisible ReCAPTCHA v2 option. Do not choose the Android or v3 options, since these are either not relevant or not supported. Note that "Invisible ReCAPTCHA" does not guarantee that there is no CAPTCHA. It just means that the test pops up only when the user clicks the "Send Feedback" button. Try the demo to see what I mean. I think the test is not supposed to show at all if Google has gathered enough data on you to be sure that you are not a robot.
For hCaptcha, note that you can also set the difficulty level of the CAPTCHA challenge. At the time I write this, you can change it in the "Settings" section of their website. There are four difficulty levels, Easy, Moderate, Difficult and Always On. My demo is set to the Moderate level, since that is the default setting, and I didn't bother changing it. You don't have to change it either, if you don't know which to choose. The easier settings apparently lead to less user frustration, since your visitors may not even need to complete a picture challenge when they click the checkbox, provided hCaptcha thinks that they are most likely to be human. The harder settings are useful for sites that experience a lot of spam, and they will cause hCaptcha to pop up a challenge more frequently (for Difficult) or all the time (for Always On). Their documentation also says the challenges also become harder for the higher difficulty settings.
When you have finished signing up, you will be given two cryptic strings of letters and numbers. These are your Site and Secret keys. You will need to enter these keys into the Feedback Form Wizard, so I recommend that you keep the CAPTCHA service's website open, so that you can just copy and paste the strings. Do not type them manually or you may introduce typing errors and give the wrong keys to the wizard.
Go to the Free Feedback Form Wizard. Read the instructions and the terms of use and fill in the details requested. You will have to choose the PHP script because I did not implement the facility in the Perl version.
When you reach the "Advanced Options" section, select either "hCaptcha", "ReCAPTCHA v2 (checkbox)" or "ReCAPTCHA v2 (invisible)" from the drop down box for the "CAPTCHA test to use" option. Make sure you choose the option that matches what you signed up for. The Wizard does not know what you did in the earlier step, and will blindly accept whatever you choose. If you select an option different from what you signed up for, the CAPTCHA challenge will not work.
Once you choose one of the options from the drop down box, two additional fields, "Site key" and "Secret key", will appear. Enter your keys in the appropriate fields. These keys will be integrated into the form and script that is created by the wizard, which is why they are requested.
(Don't worry. Like all the other data you enter into the wizard, they are not recorded anywhere, not even in my web logs. I'm trying to help you block spam, not introduce it. In addition, just in case you're wondering about the term "Secret key", it is a "secret" because it is meant to be used by the feedback form script and not published on a web page.)
Once the wizard has produced its results, insert the script code into your feedback.php
file and the form code
into your web page. Remember also to create the Thank You and Error pages. Then upload (publish) everything to your site.
Detailed instructions for doing this can be found in the usual feedback form tutorials (and a brief version is also
mentioned on the results page itself):
That's it. Once the form is "live" on your website, test your form by sending yourself a message.
Important: you can only test the CAPTCHA in a browser on your "live" website. The CAPTCHA test will probably not display correctly, if at all, in your web editor (or anywhere on your own computer). Note also that if you signed up for ReCAPTCHA, the keys will only work on the domain you provided to that service when you signed up.
If the feedback form without the CAPTCHA test works fine, but fails (ie, always leads to your error page) after you add the test, it may mean one of the following things:
You selected an option ("hCaptcha", "ReCAPTCHA v2 (checkbox)", "ReCAPTCHA v2 (invisible)") in the Wizard that did not match the actual option you signed up for. For example, you created keys for the invisible ReCAPTCHA but you selected "ReCAPTCHA v2 (checkbox)" in the Wizard.
You typed the keys into the Wizard incorrectly. This includes the situation where you entered the Site key into the Secret key field, and the Secret key into the Site key field.
You entered the Error page URL into the Wizard's Thank You URL field.
When you tested your form, you failed to enter the name, email and comments fields correctly, or you did not put a tick into the "I am human" (hCaptcha) or "I am not a robot" (ReCAPTCHA) box.
Another possibility is that you did not update either your form HTML code or the script. You must update both, whether you're changing from the standard non-CAPTCHA form to one with CAPTCHA (or vice versa), or from one type of CAPTCHA test to another (eg, from ReCAPTCHA to hCaptcha, from ReCAPTCHA v2 checkbox to ReCAPTCHA v2 invisible, and so on). All these options require different form and script code.
This error may also occur if you have improperly modified the HTML form code and removed or changed certain values that are needed by the CAPTCHA service. In general, if you want to customize the appearance of the form, stick to things like changing its colours, the width of the various fields or even the visible words that are displayed on the web page (ie, the "Name", "Email", and "Comments" descriptions that appear before each field). If you change anything else under the hood, your modifications may inadvertently alter something that either the feedback form script or the various CAPTCHA services rely on.
And of course if you have modified the feedback form script itself, then all bets are off. Anything can happen in such a case. To fix it, revert to the pristine, unmodified script by returning to the Wizard and generating a new set, and use that instead.
If you ever want to remove the CAPTCHA test from your feedback form, you will need to return to the Feedback Form Wizard to generate a new form and script. Do not use your web editor to delete the CAPTCHA code from your web page. Doing so will only remove the visible CAPTCHA box; the feedback form script will still be expecting a CAPTCHA answer. You need to regenerate everything, that is get a new script that doesn't test for the CAPTCHA answers and new HTML form code that does not have the CAPTCHA code. This time, when you use the wizard, leave the "CAPTCHA test to use" field set to "None".
It's all free, so don't be lazy, or you'll waste even more time trying to get your self-made modifications to work.
As mentioned above, when using the CAPTCHA facility, the script needs to be able to connect to the CAPTCHA service to find out if the form submitter had passed the CAPTCHA test. Many free web hosts do not allow PHP scripts to open any connection to other sites. As such, if you use a free web host, there is a chance that enabling the CAPTCHA option will cause your form to fail to work.
In such a case, go back to the wizard and generate a new form and script, this time without CAPTCHA support (that is, leave the "CAPTCHA test to use" field set to "None").
This doesn't mean that the CAPTCHA-less script will work either, since a large number of free web hosts also do not allow scripts to send mail either. If this is the case, you may either have to dispense with a contact form, or move your site to a commercial web host.
If you get an error message that says "Could not open socket" or "unable to open socket" or the like, it means one of two things.
If the error occurs every time you use the form, it probably means that your web host does not allow the feedback form script to connect to other sites. This will effectively prevent the CAPTCHA portion of the script from finding out if your visitor had completed the challenge correctly, since the script relies on the CAPTCHA service for such information. See my discussion on the use of the script on free web hosts above for more details. The solution in this case is to either move to a different web host, or return to the feedback form wizard and generate a script without CAPTCHA. The standard script (ie, one without CAPTCHA) does not attempt to connect to any site at all, so you will no longer receive this error message.
If the error only occurs some of the time, while the script works on other occasions, it's possible that at the times the message appeared, your web host's system was overloaded, the network connection was saturated, the CAPTCHA service was down, or something like that.
The CAPTCHA Secret key that you enter in the wizard is embedded into your customized feedback form script (the computer program). The Site key is inserted into the feedback form itself (the HTML code for the web page). The Site key is used to get the picture challenge from the CAPTCHA service for display. It is only used to retrieve the test. The answer to the test will not be supplied to any program using that key.
The Secret key, on the other hand, is used by the feedback form script to ask the CAPTCHA service if your visitor completed the test correctly. The CAPTCHA service will only provide this information to scripts that have this Secret key.
You don't have to worry when you see your Site key in your HTML form code. That's the way it's supposed to be. However, if you see your Secret key in your HTML form code, that means you've entered the wrong keys into the wizard. That is, you may have entered your Secret key into the Site key field. Note that the wizard is not omniscient. It doesn't know what your keys are supposed to be. It blindly uses whatever you enter. If you supply it the wrong keys, then your form and script will contain those wrong keys.
If the entire CAPTCHA test does not appear in your feedback form, and all you see is the plain feedback form without any CAPTCHA test at all (the whole CAPTCHA section is missing), it probably means one of the following things:
You are looking at the page in your web editor, and thinking that the CAPTCHA test will show up there. It probably won't. Upload (publish) your site to the Internet, and test it in a browser.
You chose the invisible ReCAPTCHA option. In such a case, the CAPTCHA test only pops up when you click the "Send Feedback" button.
You used the wrong keys. For example, you mixed up the Site and Secret keys. Or you entered the keys into the Wizard manually, and made a typing error. Or you signed up for the ReCAPTCHA V2 checkbox keys and told the Wizard they were invisible ReCAPTCHA keys (or vice versa). Or you told the Wizard you wanted one of the ReCAPTCHA options when you actually signed up for hCaptcha (or vice versa). Essentially, the keys you entered did not match what you signed up for.
Both the feedback form script and the Feedback Form Wizard do not know anything about the keys you are supposed to have. They will obediently use whatever you enter, and do whatever you tell them to do, even if the keys are wrong, or are of the wrong type. However, the CAPTCHA service will reject invalid keys, resulting in the test not working on your site.
You created your feedback form (at least) twice. The first time you did it, you created a form without the CAPTCHA test and tried it out on your site. Then you changed your mind and created a new form with a CAPTCHA test. However, the second time round, you failed to update everything.
If you change your mind and switch from a CAPTCHA-less form to one with a CAPTCHA, you must update everything on your website:
the feedback.php
script as well as the HTML code for your
feedback form. To reiterate, not only must the new PHP file be uploaded, you must also change the HTML form code
on your web page. The code is different.
Another possibility is somewhat similar to the one above. You created your feedback form at least twice, the first time without any CAPTCHA and the second with it. Your web browser could be showing you an old copy of your web page, from the time when you didn't have the CAPTCHA test. Web browsers usually save a copy of recent web pages you accessed in their internal cache. If you revisit a page you recently checked, it's possible that your browser is still displaying that cached version. You will need to reload (or refresh) the page in your browser. On most Windows browsers, hitting Ctrl+R should do the trick (where "Ctrl+R" means to hold down the Ctrl key and type "r").
If you have modified the form or script in any way (eg, to delete stuff or even to change the order of things), and you experience this problem, the issue could also be due to your modifications. See this answer for a step-by-step guide on how to locate the source of the problem and fix it.
If you change the domain name of your website, you will find that ReCAPTCHA will refuse to issue the CAPTCHA test on your new domain. For example, you may get an error message like "Input error: Invalid referer" or "Input error: Invalid domain for site key" or words to that effect. This error occurs because the ReCAPTCHA service expects a different set of Site and Secret keys for every domain. To solve this, do the following:
Log into your ReCAPTCHA account and go to the page on their system that lists all your sites using ReCAPTCHA.
Add your new domain to that list using the appropriate button or link on that page. At the time I write this, there is a "+" button somewhere at the top that lets you add a new site, but since the webmasters at ReCAPTCHA change their site design from time to time, you may have to look around for the equivalent if this "+" button is no longer there. You will be given a new set of Site and Secret keys that will only work on that new domain.
Return to the Feedback Form Wizard and generate a new form and script using the Site and Secret keys for that domain.
Insert the new form code into your web page, and republish (re-upload) both that web page and the new script that is provided.
At the present time, ReCAPTCHA v3 is not supported. Contrary to what you may think, in this case, the bigger version number does not imply the same test with more features or anything like that. Version 3 is a completely different animal from version 2. I am not even sure it's intended for use on a simple contact form. There are no CAPTCHA challenges in version 3.
From what I gather, version 3 tries to guess if the form submitter is a human. From this guess, it gives the feedback form script a probability figure between 0.0 (probably robot) to 1.0 (probably human). Just from looking at that number alone, the script will either have to accept the form submission or reject it.
Let's say that you set "0.5" as the threshold, below which you want the visitor to be treated as a spam bot. That means that any time the script receives a score less than 0.5, it will always send the visitor to an error page. The visitor will have no way of proving that he/she is actually a human. If users are irritated by a normal CAPTCHA challenge, wait till they encounter this, where they are accused of not being a human and permanently blocked from using the form, with no recourse.
Contrast this with the hCaptcha or invisible ReCAPTCHA test, both of which already try to guess if the visitor is a human. If the service decides that your visitor is human, and he/she clicks the "I am human" or "I am not a robot" checkbox, there is a chance that a tick will automatically appear in the checkbox without any picture challenge popping up. If the service is not sure, a picture challenge will then appear, giving your visitor the opportunity to show that he/she is human.
In other words, it seems to me that both the hCaptcha and the invisible ReCAPTCHA tests are supersets of ReCAPTCHA v3, at least where a simple contact form is concerned. That's not to say that I will never implement support for v3. But I need to be convinced that it is actually useful for a contact form, and that it doesn't present too big a hurdle on the webmaster, having to decide on this arbitrary probability threshold number in advance, at the time they create their form.
If you are upgrading your feedback form script from a version created by the wizard prior to March 2015 (ie, version 2.16.12 and earlier) to the current version, you will need to go back to the ReCAPTCHA site and generate a new set of Site and Secret keys. (Don't worry, Google will let you create more than one set if you wish.) Use that new set of keys in the Feedback Form Wizard, and make sure you update both the HTML for your form as well as the PHP script with the new code generated by the Wizard.
Explanation: Google changed the way their ReCAPTCHA service operates in 2015 (or thereabouts), requiring scripts that use the new version 2 keys to interface with ReCAPTCHA using a different method. This new method is not backward compatible with the old. As a result, I had to modify the Wizard so that newer feedback form scripts use this new v2 method, otherwise no one will be able to enable the ReCAPTCHA facility with the script. The old scripts (designed for v1) will continue to work fine with the old ReCAPTCHA v1 keys, but the new scripts will only work with the new keys.
For those who are confused by my explanation, here it is in a nutshell. If you use the old ReCAPTCHA keys along with my old version of the feedback form script, everything will work fine. If you use newly-created ReCAPTCHA keys with a newly-created version of the feedback form script, everything will also work fine. Just don't mix the old and new stuff together.
Update (November 2017): it looks like Google is phasing out the old ReCAPTCHA v1 (the one with the letters and numbers). If you are using the feedback form script with the old ReCAPTCHA code, you will need to upgrade. According to an email sent by Google, the old ReCAPTCHA will be turned off on 31 March 2018. If you are in this boat, you will need to follow the steps in this tutorial (this very page that you're reading; just scroll to the top) again. That is, get the new keys from Google, use the Wizard to generate the new code, and replace BOTH your feedback form and the script. You can re-use your old Error and Thank You page if you wish.
This item is for those who get the following message on your feedback form page:
There are at least 2 possibilities for this message. The first is that you are running some sort of extension, plugin or add-on in your web browser that selectively disables some JavaScript running on your website while allowing others. This apparently confuses the ReCAPTCHA service, which uses JavaScript by default to display the test. Either disable the plugin, or force the plugin to enable (or disable) all JavaScript on your site (and not just some), or use a different web browser that doesn't have the plugin for the duration of your test.
Another possibility is that you have incorrectly modified important parts of the HTML form code generated by the Feedback Form Wizard. If this is the case, the solution is to return to the wizard and generate a fresh copy of the feedback form HTML code. Plug that pristine copy, unmodified, into your form page and test again. If the error disappears, it probably means that your changes caused the error. If you really must modify the form, please use one of my detailed feedback form tutorials as a guide, so that you don't accidentally change critical portions that are needed for it to work properly.
Update: this message will probably not show any more, since the Google programmers have disabled the JavaScript-free version of ReCAPTCHA. Consequently, I have also removed the JavaScript-free code in newer versions of the form, since it no longer serves any purpose.
If you encounter other types of errors or problems, please check out the Frequently Asked Questions (FAQ) about the Feedback Form Wizard.
The CAPTCHA test is probably one of the most frequently requested feature for my feedback form script, probably because there are so many beleaguered webmasters struggling with spam. Following the steps given in this CAPTCHA guide will allow you to add the test to your web form without having to learn any programming at all.
Copyright © 2009-2024 by Christopher Heng. All rights reserved.
Get more free tips and articles like this,
on web design, promotion, revenue and scripting, from https://www.thesitewizard.com/.
Do you find this article useful? You can learn of new articles and scripts that are published on thesitewizard.com by subscribing to the RSS feed. Simply point your RSS feed reader or a browser that supports RSS feeds at https://www.thesitewizard.com/thesitewizard.xml. You can read more about how to subscribe to RSS site feeds from my RSS FAQ.
This article is copyrighted. Please do not reproduce or distribute this article in whole or part, in any form.
It will appear on your page as:
How to Add a CAPTCHA Test to Your Feedback Form Script: Reducing Spam in Your Contact Form