Website forms question
June 25, 2007 5:19 AM   Subscribe

I want to cut down on the chance of getting spam from a form on a website I maintain, so I want to incorporate the kind of thing I have seen on other websites where you have to enter a set of jumbled letters or numbers in order to submit a form or buy a ticket. What is that called? How is it set up and how does it work?

Is it a service you can subscribe to or is it a pretty simple process to do myself?
posted by worker_bee to Computers & Internet (12 answers total) 2 users marked this as a favorite
 
It is called a CAPTCHA. Try a Google search on that term.
posted by litlnemo at 5:23 AM on June 25, 2007


Captcha
posted by chillmost at 5:23 AM on June 25, 2007


its called CAPTCHA and there are loads of free captcha scripts on the web, though you may want to look at this and this
posted by missmagenta at 5:24 AM on June 25, 2007


Response by poster: This place never fails!
posted by worker_bee at 5:25 AM on June 25, 2007


http://recaptcha.net/

:D
posted by rhoticity at 5:44 AM on June 25, 2007


Also, if you're running the website on CMS/blog software (Moveable Type, Wordpress, Joomla etc) then most of them have some sort of Captcha plugin available (if not dozens).
posted by Happy Dave at 6:49 AM on June 25, 2007


Happy Dave is happily right. Lookout for the Akismet plugin for this!

For non CMS/blog integrated contact forms, try Stephen Ostermiller's contact form. It's very good against spam.
posted by dance at 7:00 AM on June 25, 2007


You should really use ReCaptcha; the text it uses is for digitizing old books and the like.
posted by youarenothere at 7:50 AM on June 25, 2007


One solution, even better than CAPTCHA for the purposes you require, can be done with some CSS trickery and a little PHP.

The idea is this : instead of "proving you're not a computer" like a CAPTCHA does, you're "proving you're a human".

The basic idea is, supposing this is your form setup :

Name : (text input)
E-Mail address : (text input)
Comments : (textarea)

Make another field, called "sub-email" as another text input, so your form would initially look like this :

Name : (text input)
E-mail : (text input)
Verify E-mail : (text input)
Comments : (textarea)

Now, give the "verify e-mail" text input an id of, say, "verifymail", and put this into your CSS file :

input#verifymail { display: none }

And in your PHP script, basically "if verifymail is not blank - kill the script"

A human looking at the form wouldn't see the hidden 2nd text input, and wouldn't be filling that part out - so you can safely process the form.

A computer is looking at a stripped version of your page (without CSS), and therefore WOULD see the 2nd input and WOULD fill it out (because a verifying e-mail secondary input is common).

It's not going to be perfect - but it won't annoy the end-user by making a hard-to-read CAPTCHA.
posted by revmitcz at 3:28 PM on June 25, 2007


err.. I meant to say "clearly showing that you're not human" in that "basic idea" part.
posted by revmitcz at 3:34 PM on June 25, 2007


@revmitcz

I thought that method was well and truly debunked? It will also 'kill the script' for anyone using a text browser, who have CSS turned off or where CSS implementations differ?
posted by dance at 2:15 AM on June 26, 2007




« Older Dante/Italian filter: Nuova or Nova?   |   Memory Foam vs Pocket Springs - Which one too... Newer »
This thread is closed to new comments.