Web form being spammed

  FOEYDO 09:38 26 Dec 2007
Locked

Hi, I have a few forms on my website and they are being filled in by spammers, I dont want to use captcha, any ideas?

  SimpleSimon1 09:59 26 Dec 2007

Hi

Please take a look at my earlier posting here (click here). I've implemented it on my web site contact form and, so far, the spambots have not been able to get throught it.

Good luck

Simon

  FOEYDO 10:02 26 Dec 2007

Thanks Simple Simon, could you possibly post or send me the exact code to use and where do I put it. I have a php form.

  Kemistri 13:02 26 Dec 2007

Message me and I'll send you the code you need for PHP. I won't post it here as it's a bit long.

  Kemistri 16:43 26 Dec 2007

Thanks for the email. I have sent you an example PHP file with the anti-spam code. Post again if you have any questions.

  SimpleSimon1 10:08 27 Dec 2007

Since your forms are PHP, I think Kemistri is 'your dude'. However, just in case you have any PERL/CGI contact forms,I'll let you have the anti-spam solution for them, as well.

1) Put a hidden field on the form you want to protect and call it something that a spambot would want to target (e.g. Name, Surname, Email etc).

2) Using nmsFormMail, add the following code to the User Customisation Section, immediately after the line "# Place any custom code here":

use CGI;
sub spam {
my $q = new CGI;
my $spamcheck = $q->param('xyz') || ';
if ($spamcheck ne ') {
print "Location: click here\n\n";
exit;
}
}
spam();

where "xyz" is the name of the hidden field

3) Find the FIRST occurence of the text "use CGI;". It will normally be followed by the lines:

use POSIX qw(locale_h strftime);
use CGI::NMS::Charset;

4) Comment out the 'use CGI' line with a # i.e.

# use CGI;

That should do it. Now, anytime that the script is used, it will check to see if the hidden field has been populated. If it has (and, cos it's hidden, only a spambot could do this), it will be sent off to the farfaraway address rather than yourself.

Enjoy

  SimpleSimon1 10:12 27 Dec 2007

The forum software parsed the www link in my script fragment. If you use this method, simply replace the "click here" text with the proper www address (including the http://) and make sure you still have the \n\n"; bit on the end of it.

Sorry for any confusion

  Kemistri 13:49 27 Dec 2007

"Since your forms are PHP, I think Kemistri is 'your dude'."

Haha! I wish! I'm still learning more about PHP all the time. Complex stuff, unfortunately.

  FOEYDO 13:56 27 Dec 2007

Thanks Kemistri, I now need some php code to block HTML tags or http headers? Any takers?

  Kemistri 15:05 28 Dec 2007

I've been looking into this today, but without much success so far. I know how to validate the form to check for things like numbers in the phone field, but blocking text is proving trickier.

  FOEYDO 15:11 28 Dec 2007

Keep up the good work Kemistri, if you are like me I can't rest til Ive done it!

This thread is now locked and can not be replied to.

Elsewhere on IDG sites

Xiaomi Mi Mix 2 review

What went wrong at the Designs of the Year 2017

iPhone X news: Release date, price, new features & specs

Comment utiliser Live Photos ?