修改验证码为加法运算问题,有效防止广告信息
![引用内容](http://www.starfox.cn/studio/images/quote.gif)
每天清理Blog的广告评论和留言就得花上不少时间,甚至有一次3天没上网,打开Blog发现90多条广告评论,顿时觉悟:是时候改进PJ的验证方式了。最近看到mifly的WP上采用了新的验证码,形式是一道加法运算题,简单明了,而且也对于浏览者来说,填写一个1到2位数的答案,比起填写4到6位数的验证码舒服多了。
于是自己稍微研究了PJ的验证码机制,参照BoBlog的类似功能,做一点改动,初步实现加法运算形式的用户验证。当然WP上那个算法验证码是随机生成的,技术含量比我这个简单的小修改强很多,具体修改效果如下:
![](http://www.bigik.cn/blog/attachments/month_0704/y200744111144.GIF)
于是自己稍微研究了PJ的验证码机制,参照BoBlog的类似功能,做一点改动,初步实现加法运算形式的用户验证。当然WP上那个算法验证码是随机生成的,技术含量比我这个简单的小修改强很多,具体修改效果如下:
修改方法:
1. 打开common目录下的function.asp,在大约50行左右可以找到以下代码:
![程序代码](http://www.starfox.cn/studio/images/code.gif)
'*************************************
'获得注册码
'*************************************
Function getcode()
getcode= "<img src=""common/getcode.asp"" alt="""" style=""margin-right:40px;""/>"
End Function
'获得注册码
'*************************************
Function getcode()
getcode= "<img src=""common/getcode.asp"" alt="""" style=""margin-right:40px;""/>"
End Function
2. 将其替换为以下代码:
![程序代码](http://www.starfox.cn/studio/images/code.gif)
'*************************************
'获得注册码
'*************************************
'Function getcode()
getcode= "<img src=""common/getcode.asp"" alt="""" style=""margin-right:40px;""/>"
'End Function
'*************************************
'获得注册码,运算问题
'NewValidate For PJblog2 BY Bigheadlyf
'更新时间: 2007-4-4
'*************************************
Function getcode()
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("GetCode") = AnswerArray(CodeIndex)
getcode = "<span style=""margin-right:40px;"">" & QuesionArray(CodeIndex) & "</span>"
End Function
'获得注册码
'*************************************
'Function getcode()
getcode= "<img src=""common/getcode.asp"" alt="""" style=""margin-right:40px;""/>"
'End Function
'*************************************
'获得注册码,运算问题
'NewValidate For PJblog2 BY Bigheadlyf
'更新时间: 2007-4-4
'*************************************
Function getcode()
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("GetCode") = AnswerArray(CodeIndex)
getcode = "<span style=""margin-right:40px;"">" & QuesionArray(CodeIndex) & "</span>"
End Function
3. 保存文件,上传到服务器,测试~
4. 其他修改建议:
问题可以设置为加减乘除任意问题或者其他文字问题,例如“987 x 654 = ?”、“中国有几个少数民族?”等等,不要让浏览者答不上就可以了:P。
建议将验证码输入框宽度改小些,且最大输入字符数设置为2。
posted on 2008-10-04 09:27 网络安全、asp、asp.net编程 阅读(495) 评论(0) 编辑 收藏 举报