Welcome to the Question2Answer Q&A. There's also a demo if you just want to try it out.
+3 votes
1.6k views
in Plugins by
Q2A version: what can i do, i am getting fed up nothing works
by
yeah, me too ....
by
If you can invest some money in antispam measures, this premium plugin will help you: http://www.q2apro.com/plugins/stop-spam

1 Answer

+1 vote
by

I made a fix for this, and I have had zero spam on my site since I implemented it (from 15-20 per day).

You need to do a quick edit of some of the core code. It uses the stopforumspam spammer database to check users which are signing up. Please note, this won't work for all sites, but should do in 90% of cases (all sites get different types of spam).

I posted my fix here: http://www.question2answer.org/qa/39657/is-anyone-working-on-human-spammer-protection?show=39872#a39872

But here is the contents of the link:

I have found a fix. My site went from 5-20 spam posts per day to 0, using the stopforumspam.com API. Basically, when a user tries to register, it checks their IP address against the stopforumspam.com database. In 99% of cases, scammers (at least for my site), were listed as scammers on this site. I wrote the following code to implement stopforumspam automatically. Sorry, it is a bit messy and isn't in plugin form, but it works. Only tested on Q2A 1.7 alpha, but it should work on 1.6.3 and lower too. Please tell me if it doesn't. 

 

Go to qa-include/qa-page-register.php, under FTP in your site files.

Enter the following under this: if (empty($errors)) { Should be line 100-120 depending on Q2A version, just use CTRL+F.

$ipspam = file_get_contents('http://api.stopforumspam.org/api?ip=' . qa_remote_ip_address());
$ipspam = explode(' ', $ipspam);
if ($ipspam[1] == 'yes'){
  exit('This message is shown to scammers, change it to whatever you want');
 }
 
Save it to the live site and you should be done. Create a test account just to make sure it still lets legit users through.

I got several upvotes and a selected answer, so it seems that it's working for everyone.

by
You don't need to edit core code, this can be done with a filter plugin.
by
Here's a plugin for it :
https://www.dropbox.com/sh/dk905gqho7p2g0i/AACeFLbnGFb8avQRDks1jYc4a?dl=0
not too fond of the idea though.

Haven't tested the code either
by
I have just installed it and we will see if it works... :)
Thanks
by
What's wrong with the idea so we're all wiser?
by
But where's the filter plugin?
by
cuz legit users could be filtered out
by
Did you make it into a plugin? I am using it on a 1000+ user site and haven't had any problems as of yet with legit users being falsely caught. Also, you could probably improve the exit() and change it to a $qa_content['error'], I think (then cancel the user from registering somehow)?
by
yeah doesn't the dropbox link work? i just made a plugin with an admin module and your code in a layer

just curious, how do you know that no legit users aren't caught?

thanks for the code btw
by
I'm not 100% sure, but before I implemented, I wrote some PHP to go through all of our legit users and check their ips against the database and none were caught. That was when we had 400 users. Now we have over 1000 and nobody has informed me about any problems.
...