in reply to Battling form spam
A few random observations after having a cursory view on the download of your script (Form.cgi from Form.zip) which does "not work properly":
The original script is not your own, but you tried to adapt some form script "flying around" in the internet. (Which is not a bad thing as is, but just to mention because it was not obvious from your post.)
I didn't bother to long for the original of the script, but try to deduce your changes from what you wrote here.
You introduced the lines 631,632 (at beginning of sub send_email):
# Only send email if spam trapping field is empty # if ($Form{'hiddenfield'} eq '') {
and line 907,908:
# closing bracket for spam if statement # }
Now coming from here:
There is no such variable as %Form declared or filled anywhere, so it will be empty (referencing that stray variable is no error, since use strict; is not used in the script.)
The closing bracket for spam if statement is not placed at the end of the original sub send_email but a good while further below enclosing some additional subs.
The last 2 mentioned observations are errors IMHO. To correct that, I propose the following:
$Form{'hiddenfield'} should read $query->param('hiddenfield').
Move the closing bracket for spam if statement to approx. line 830, where the original sub send_email ended. (more precisely: place it in front of the } which precedes sub add_error.)
This is all untested guesswork, but I hope it may lead you closer to what you wanted.
|
---|
Replies are listed 'Best First'. | |
---|---|
Re^2: Battling form spam
by rickaltman (Initiate) on Nov 22, 2010 at 06:15 UTC |