今天在Bigik.cn上看到一个不错的方法,Bigik使用加法运算形式的用户验证来解决这个问题。现把方法转载过来。当然这个方法不是很完善,我发现还会有一些spam进来。
使用方法:
程序代码
复制代码 代码如下:
Function getnum()
Dim QuesionNum
QuesionNum=7 '问题的总数,如要添加问题,请先修改这个数值
Dim CodeIndex
CodeIndex=0
Dim QuesionArray(100)
Dim AnswerArray(100)
QuesionArray(0)="= 1 + 1" '问题列表及答案,可自行修改
AnswerArray(0)="2"
QuesionArray(1)="= 2 + 2"
AnswerArray(1)="4"
QuesionArray(2)="= 3 + 4"
AnswerArray(2)="7"
QuesionArray(3)="= 2 + 4"
AnswerArray(3)="6"
QuesionArray(4)="= 1 + 2"
AnswerArray(4)="3"
QuesionArray(5)="= 2 + 3"
AnswerArray(5)="5"
QuesionArray(6)="= 4 + 4"
AnswerArray(6)="8"
Randomize
CodeIndex = Int((QuesionNum * Rnd) + 0)
Session("Getnum") = AnswerArray(CodeIndex)
getnum = "<span style=""margin-right:40px;"">" & QuesionArray(CodeIndex) & "</span>"
End Function
调用方法:
复制代码 代码如下:
<%response.write getnum()%>
其他修改建议:
问题可以设置为加减乘除任意问题或者其他文字问题,例如“987 x 654 = ?”、“中国有几个少数民族?”等等,不要让浏览者答不上就可以了:P。
建议将验证码输入框宽度改小些,且最大输入字符数设置为2。