My so-far-foolproof way of detecting spammers is to put an extra field in the form, call it something innocuous like 'website', and then hide it with CSS. That way, normal users shouldn't ever see it and it remains blank. Bots on the other hand will just see it as another form field and fill it out. Therefore, reject those entries where that field has been filled out.
You can stick some text next to it like "Don't fill this out" for those with CSS turned off. Works for me, and it's better than captchas.
Great idea, and works perfectly. Thanks!
I've even gone further, and used several hidden 'dummy fields' with multiple css style names, and strange form field names (as RobH suggested) to make it more difficult to detect which is the real one.
And hey presto - no spam for the past two days

OcUK brain power wins again.
Last edited: