The problem is, most forum spammers aren't automated bots. They're generally humans living in less-fortunate countries making
pennies
every time they post a link somewhere. This is usually the result of a sketchy SEO "service" offloading their work to third party "contractors" who
then engage in this unscrupulous and questionably beneficial process.
A human will easily pass these checks, although increasing the time to money ratio can help change their calculus (ie: this site isn't worth it).
Problem is, if you increase it too much you'll throw off normal users as well.
A standard CAPTCHA check along with one of the many anti-spam systems works wonders. I had 6+ spam registrations per day, now I get 2-3 per week. And
they've all (thus far) been caught by the anti-spam system even after registration and are subject to endless redirects to not-so-pleasant places. My
favorite is a decoy forum that can be emptied out every couple of weeks. Another option is an endless stream of "are you human?" checks that will fail
them no matter which way they answer.
As far as your question is concerned, you could implement the question like this in the member registration template right inside the form they're
using to register/fill out their profile. Suggestion would be to place this just above the submit button (<input type="submit">
Code: |
Answer "500" to this question! What is the atomic number of Helium? <input type="text" name="regquestion">
|
Then in member.php?action=reg add (somewhere around the $email variable input would do)
Code: |
$correctanswer = "500";
$theiranswer = $_POST['regquestion'];
if($theiranswer != $correctanswer)
{
error("You answered the question incorrectly!");
}
|