Well, as in the past my answer is still just a suggestive type of solution which you would have to recode for your purpose since most or all of you do not use a Zope server. Here is an example, very much like Captcha: http://www.library.appstate.edu/services/suggest.html On our suggestion form, I have a python script that generates a random number and then creates a graphic of the readable number not like the jumble of Captcha. Here is an example of the html source created that is inserted in the form: <input type="hidden" name="cost" value="77232"> <b>Please enter the number pictured below.</b><br> <img src="number.jpg" alt="77232"/><input type=text name="picnum" value=""> I think one of the keys here is using the "name" cost. If spambots can understand the term then maybe they put a decimal in there when there never should be one. On our suggestion form someone else added the javascript popup in case that field is not filled in. I haven't tested this with any screen reading software but I think it should speak the alt text for the graphic. All in all, this has significantly reduced spam. A quick and simple version is that maybe you can just add a static graphic of a number and use the same number every time. Then on the processing of the information, first check for the number being correct. Thomas CODE (external script for Zope): #PIL - Python Imaging Library from PIL import Image,ImageDraw,ImageFont import random import os from StringIO import StringIO from OFS.Image import manage_addImage # CREATED AUGUST 8, 2007 - Thomas Bennett # REQUIREMENTS # PIL FONTS FROM http://effbot.org/pil/pilfonts.zip # PIL FROM http://www.pythonware.com/products/pil/ def random_number_image(self): #GENERATE A RANDOM NUMBER OF 5 DIGITS # FROM 10000 to 99999 mynumtext = str(random.randrange(10000,99999,1)) my_image_id = "number.jpg" #DEFINE FONT PATH AND NAME fontpath="/usr/local/lib/python2.4/site-packages/pilfonts" fontname="ncenB14.pil" # CREATE A TEXT IMAGE USING MYNUMTEXT # INSTANTIATE A NEW IMAGE (a dark gray box) textImg = Image.new('RGB',(75,25),(56,56,50)) # DRAW THE IMAGE INTO TEMP tmpDraw = ImageDraw.Draw(textImg) # LOAD A FONT FOR THE IMAGE textFont = ImageFont.load(os.path.join(fontpath,fontname)) # PLACE TEXT IN NEW IMAGE tmpDraw.text((15,1), mynumtext, font = textFont) # PUT THE IMAGE INTO MEMORY AND SAVE IMAGE TO MEMORY imageFile = StringIO() textImg.save(imageFile,"JPEG") # IF THERE IS A NUMBER.JPG IN THE CURRENT DIRECTORY, # DELETE IT SO UNDO WON'T BUILD UP if my_image_id in self.objectIds(): self.manage_delObjects([my_image_id]) manage_addImage(self,"number.jpg",imageFile) # WRITE THE IMAGE AND FORM CODE TO THE PAGE text = '\n<input type="hidden" name="cost" value="%s">' %mynumtext text = text+'\n<font face="Verdana, Arial, Helvetica, sans-serif" size="1">\n<b>Please enter the number pictured below.</b></font>' text = text+'<br>\n<img src="%s" alt="%s"/><input type=text name="picnum" value="">\n<br />' %(my_image_id,mynumtext) return text On Monday 24 October 2011 09:26:15 you wrote: > Hi folks, > > Some of our online forms (contact, archives request, etc.) have been > getting a bunch of spam lately. I have heretofore avoided using any of > those obnoxious Captcha things and would rather not start now. (I > personally loathe them and they keep getting harder, which tells me that > the spambots are probably better at them than we are...) > > Does anyone have some good/easy/free/less-stressful spam-inhibiting ideas? > > One that occurs to me to try, and I have no idea if this would match well > with actual bot behavior: at the time the form loads, include at hidden > field with id=[unixtimestamp]. When the form is submitted, ignore any > forms that took less than (10? 15? 20 seconds?) to fill out on the > assumption that bots probably do it way faster - or possibly way slower? > Do they save them up for later? Should I add an upper bound? Is this just > a really dumb idea? > > If I try that one, I would start not by eliminating the bad results but by > marking them as spam and seeing how effective it is. > > Other ideas? (PHP-friendly answers would be easiest for me to implement, > but others may work too.) > > What works for you? > > Thanks > Ken > -- ========================================== Thomas McMillan Grant Bennett Appalachian State University Operations & Systems Analyst P O Box 32026 University Library Boone, North Carolina 28608 (828) 262 6587 Library Systems Help Desk: https://www.library.appstate.edu/help/ ==========================================