引用內容 每天清理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。