07-10
26

修改PJ验证码为加法运算问题,有效防止广告信息

  每天清理Blog的广告评论和留言就得花上不少时间,甚至有一次3天没上网,打开Blog发现90多条广告评论,顿时觉悟:是时候改进PJ的验证方式了。最近看到mifly的WP上采用了新的验证码,形式是一道加法运算题,简单明了,而且也对于浏览者来说,填写一个1到2位数的答案,比起填写4到6位数的验证码舒服多了。
  于是自己稍微研究了PJ的验证码机制,参照BoBlog的类似功能,做一点改动,初步实现加法运算形式的用户验证。当然WP上那个算法验证码是随机生成的,技术含量比我这个简单的小修改强很多,具体修改效果如下:


修改方法:
1. 打开common目录下的function.asp,在大约50行左右可以找到以下代码:

程序代码
'*************************************
'获得注册码
'*************************************  
Function getcode()
        getcode= "<img src=""common/getcode.asp"" alt="""" style=""margin-right:40px;""/>"        
End Function


2. 将其替换为以下代码:

程序代码
'*************************************
'获得注册码
'*************************************  
'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。


文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags:
相关日志:
评论: 1 | 引用: 0 | 查看次数: 724
回复回复海豚[2007-12-12 08:35 PM | del]
方法不错,收藏代码!
发表评论
昵 称:
密 码: 游客发言不需要密码.
内 容:
验证码: 验证码
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.
字数限制 1000 字 | UBB代码 开启 | [img]标签 关闭