we should follow ways against spammers to dont let them register. once a spammer turns to a registered user everybody can do his own actions against them.
I introduced a "local math captcha" in persian xoops255 release which works perfectly in persian websites.
I didnt have one single spam in more than 1 year in my high traffic website.(about 4 registers a day)
I think this local math captcha is a good way to try even in english websites.
it works like this:
instead of a question like 3 + 4 = ? It will ask Three + Four = ?
or in french it will ask: trois + quatre = ?
I think it worth to try.
even we can turn it to Three plus Four is equal to ?
implementing it is possible in current xoops systems very easy.
in xoops255/class/captcha/text.php
change the function loadText with this:
function loadText()
{
xoops_load('XoopsLocal');
$val_a = rand(0, 9);
$val_b = rand(0, 9);
$expression = "{".XoopsLocal::number_format($val_a)."} + {".XoopsLocal::number_format($val_b)."} = ?";
$this->code = $val_a + $val_b;
return ''.$expression.'';
}
as you can see it use XoopsLocal::number_format so you can change the number_format function in your locale.php to change numbers to letters.
the above is the easiest possible way to do with current xoops255 codes.
there are many other ways against register of spams which needs more coding.
EDIT:
IMO now enabling sfs in protector is the most effective way against spammers.