+2  A: 

I think you can read the basic concept from Captcha's website. Then, google for Captcha with classic ASP: http://bit.ly/dpFKgW

You may have to figure things out on your own after that, because we cannot see your ASP pages' source code.

publicRavi
+8  A: 

Try putting an empty field in the page, hide it via CSS and check if it's filled in. (Perhaps with a note beside that says to leave it empty in case a user has CSS disabled.) Many bots will fill every field in, so you can check if this field is empty.

Michael Mior
The effectiveness of this will go down as it becomes more widely known, I suppose. Classic cat and mouse. There's a lot of similar things you can do though to stay a step ahead of the spambots without resorting to captchas.
dreeves
@dreeves: Cat and mouse indeed. But it works at the moment, that's really what matters. :) Some day, bots will be able to read captchas, but we can worry about that when it happens.
casablanca
@casablanca I'm sure those bot's that read CAPTCHAS will be made in 2020 in Japan first and they will look like humanoids, and have biocameras (actually Jeff Atwood's eyeballs) that look at the 200 inch display. They will also be able to fill in the form in a smart way so you can't see it's done by a bot. Next to that, they will be able to switch SIM cards to change their IP address. And if a new native language has been invented, they can decode it immediately. That are the spambots of the future.
Time Machine
I meant `3D display`, so they can fill in millions of forms at the same time.
Time Machine
@Koning: LOL, made my day!
casablanca
Yeah, sadly there will never be a perfect technique for fighting spam. The spammers keep up with technology just as well as developers do.
Michael Mior
+7  A: 

CAPTCHA is the most well-known solution, but if you're looking for something simple, I've found that this works quite well: set your form's submit URL to blank (or something invalid) and introduce it via JavaScript. So far, I haven't seen a bot that executes JavaScript to get past forms. This does mean that users need to have JavaScript enabled, but most do anyway.

Example:

<form id="myform" action="" onsubmit="return doSubmit();">
...
</form>

<script type="text/javascript">
function doSubmit() {
  // You can also do any validation here if required
  document.getElementById('myform').action = 'real_submit_url';
  return true;
}
</script>
casablanca
Don't forget about user experience: http://meta.stackoverflow.com/questions/48840/todays-captcha-wtf-closed
Time Machine
That's true. It's however a workaround, not a solution. Usability-wise it's even a dealbreaker.
mario
Personally I would never adopt a solution that hurts user experience. I'd rather suck it up and take the spam.
Michael Mior