I recently installed AntiSpam on a client site to try it out as an alternative to Mollom (which currently does not support spam prevention for Webforms). On this site, the only form I need to protect is a Webform which when submitted is emailed to the client (and, as per the Webforms module, saved as a submission which can be viewed by an administrator).
Since installing it, the spam has kept coming in, but the module seems not to even recognize it's there. It doesn't display having blocked any spam, no spam appear in the moderation queue, etc. I am getting no error messages, except one which I think is unrelated, which appears when I load /admin/content/antispam/comments:
warning: mysqli_query() [function.mysqli-query]: Empty query in /var/www/vhosts/example.com/httpdocs/includes/database.mysqli.inc on line 108.
user warning: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'ORDER BY timestamp DESC LIMIT 0, 50' at line 1 query: ORDER BY timestamp DESC LIMIT 0, 50 in /var/www/vhosts/example.com/httpdocs/sites/all/modules/antispam/antispam.admin.inc on line 739.
(I think this error message just has to do with displaying comments, not with the actual operation of the module, but I thought I'd include it in case it was important).
What is going on here? Is it just a case of not supporting spam prevention in the Webforms module?
Comments
Comment #1
kmontyI also need antispam to block webform spam. Is this feature going to be made available or do I need to install the captcha module for webforms?
Comment #2
pixture commentedCurrently, AntiSpam module only deal with spams in nodes or comments. Webform does not use node and therefore it's outside of this module's control. I will look into it to see if I can easily add support for the webform submission data or not.
Comment #3
mplanchant commentedWhat is exactly is required to get AntiSpam working with webform submissions?
Comment #4
pixture commentedSince I do not know much about Webform module, I can not tell what's required. Most probably it's a totally new development and can not be done easily without knowing the detail code of webform. It would be easiler for Webform developer to figure out how to call antispam module's API and use it within the webfom module to check the submitted content.
Comment #5
OnlineWD™ commentedSubscribing
Comment #6
mcrittenden commentedSub.
Comment #7
pixture commentedIt looks like that the latest dev snaoshot of Mollom and Webform supports spam checking on Webform fields.
Please check their project pages.
Comment #8
mcrittenden commentedRe: #7, for more info, see #245682: Enable use of Mollom for any form
However, doing so would be more difficult with AntiSpam than Mollom because AntiSpam keeps an approval queue of comments and Mollom doesn't (it either approves them or denies them and keeps no record of them after the submission). AFAIK, that's why Mollom is able to support any Drupal form without delving into the specifics of each form but AntiSpam can't.
@pixture, is all that correct?
Comment #9
pixture commented@mcrittenden,
Thanks for the follow up. You are right. The reason AntiSpam module keeps records of comments/node submitted in the past was to provide users the way to report false negative and false positive later, and convert them back and forth based on the fact that any anti-spam module may fail.
Anyway, Webform module keeps their form data into their database table not in standard node/comment table, and this makes it difficult for AntiSpam to deal with it.
In the next version, I will add simple API so that any other modules (including Webform) can call to check any text data using external anti-spam services via the API function provided by AntiSpam module. With this API, any modules can check their contents (it's not neccessary to be form data but also any text data) and do whatever they want based on the verdict of the checking. I think this is the best AntiSpam module can.
Comment #10
mcrittenden commentedMarking postponed then.
Comment #11
bradjones1Maybe I'm missing something, but shouldn't it be possible to implement this by using the antispam api function as an additional validator in the webform advanced config? Like:
The only problem is (perhaps unrelated) that I feed every API the spammiest text I can find, and the API always returns 0 (HAM, according to the documentation.) Thoughts?
Comment #12
pixture commented> bradjones1,
Didn't you test your code as an administrater? If so, AntiSpam module always trust administrator person and returns 0 (HAM). You may need to test it as a guest visitor (or non-admin users).
Comment #13
matteoraggi commentedI continue to have the same problem on www.ebagno.it and all webforms are spammed and no spam with antispam using akismet is filtered. no spam filtered totally. I'm using both stable last version. How I can patch it?
All the 3 engines are not working, I?m receiving hundred of spam and nothing is filtered from antispam module.
Comment #14
bradjones1@pixture, yes, I tested it as an anonymous user. Have since moved over to Mollom for protecting the form, though it would be preferable to have Webform do the processing through a more preferred API.
Comment #15
avpadernoI am closing this issue, since Drupal 4.x, 5.x, and 6.x are now not supported.