Of course forum spam is often created by real people now so there's no way to filter out absolutely everyone through the form, unless you have an input box that asks something like "Why do you want to join this site?" and manually filter the responses yourself. I've also heard of another pretty innovative method by spammers where they take the CAPTCHA image your site generates and stick it on a porn site, and telling a visitor to that site they have to enter that (your) CAPTCHA to view the content, then the spambot takes their input and puts it back into your forum.
I hope every spammer is caught and gets life in prison.
the quickest way is to exit the script if http:// is in any field.
Instruct users to just enter "domain.com" if they need to put in a web address. Result 99% of spam eliminated
next, use css and create an input named "yourname" as a dummy and go left 10000 so it will never display on a normal screen (also put text on it saying not to fill it in and "left" it 10000). Then check if $yourname is set and exit the script.
get advanced and issue a session with a secret number and echo that as a hidden form field md5 encrypted and make sure the session get transfered when the form s posted.
this will be transparent to the user.
these are bots that are filling out the forms and they look for anything with name and email in the input (name) and automatically fill them in.
do this and you will eliminate all spambots without filtering any legit users.
I've seen an alternative once that had a 3x3 grid of animal pictures, and it asked you to select all dogs, or all cats, or all horses. That's easy enough to do for a human, but near impossible for a bot.