日韩天天综合网_野战两个奶头被亲到高潮_亚洲日韩欧美精品综合_av女人天堂污污污_视频一区**字幕无弹窗_国产亚洲欧美小视频_国内性爱精品在线免费视频_国产一级电影在线播放_日韩欧美内地福利_亚洲一二三不卡片区

動(dòng)網(wǎng)驗(yàn)證碼出現(xiàn)的問題及解決方法_動(dòng)網(wǎng)論壇教程

編輯Tag賺U幣
教程Tag:暫無Tag,歡迎添加,賺取U幣!

本人在論壇調(diào)試中出現(xiàn)的各種驗(yàn)證碼問題及解決方法

 

1、把字母加入驗(yàn)證碼字符集里,可是怎么無法通過驗(yàn)證???

如:Const cCharSet = "0123456789ABC"

這是因?yàn)樵贒v_ClsMain.asp中存在一段有問題的代碼,導(dǎo)致字母的驗(yàn)證碼不能正確判斷所致

這個(gè)問題應(yīng)該在7.1的時(shí)候就已經(jīng)解決了呀。

CodeStr=Lcase(Trim(Request("CodeStr")))

這段代碼令得讀來的信息被小寫了

而下一段代碼:

If CStr(Session("GetCode"))=CStr(CodeStr) And CodeStr<>""  Then

比較的時(shí)候卻沒有把Session的內(nèi)容小寫化

 

可以在兩個(gè)地方修改(二選其一,看個(gè)人愛好)

一、改Dv_ClsMain.asp

If CStr(Session("GetCode"))=CStr(CodeStr) And CodeStr<>""  Then

改為:

If CStr(LCase(Session("GetCode")))=CStr(CodeStr) And CodeStr<>""  Then

二、改Dv_GetCode.asp

Session(pSN) = DigtalStr '記錄入Session

改為:

Session(pSN) = LCase(DigtalStr) '記錄入Session

2、【動(dòng)網(wǎng)驗(yàn)證碼字母矢量庫的擴(kuò)展

動(dòng)網(wǎng)7.1與7.0相比,在驗(yàn)證碼上作了大改動(dòng)。7.0使用的是一個(gè)現(xiàn)成的MBP圖庫,內(nèi)含0-9十個(gè)數(shù)字的圖形信息(每個(gè)圖形都是10*10像數(shù))。因?yàn)檫@十個(gè)數(shù)字毫無變化,破解的起來還是比較容易的。
  到了7.1,至少在以下方面有了變化:一是用失量庫代替點(diǎn)陣庫,這樣可以產(chǎn)生任意尺寸的驗(yàn)證碼圖片;二是字符串長度不僅局限于4個(gè)字節(jié),可以使用任意長度,三是增加了變形和噪點(diǎn)處理,即使同一個(gè)字符重復(fù)出現(xiàn),也可以產(chǎn)生不同的圖片,四是字符集不僅僅局限在十個(gè)數(shù)字,而可以擴(kuò)展到其它字符,甚至連漢字也不在話下。
  但是,動(dòng)網(wǎng)的程序中只提供了10個(gè)數(shù)字和“ABCD”四個(gè)字母的失量圖庫,并在字母“A”失量庫開始前留下這樣一句注釋:“以下為字母的矢量動(dòng)作,有興趣的可以繼續(xù)”,也就是說如果你不動(dòng)手?jǐn)U展,就只能使用由這14個(gè)字符組成的字符集。
  本人懷著對(duì)動(dòng)網(wǎng)的無限敬仰和濃厚興趣,動(dòng)手?jǐn)U展了這個(gè)失量庫,將26個(gè)大寫字母弄全了。
  在動(dòng)手之前,有個(gè)問題必須先說明:一量引用字母,就必須正視數(shù)字“0”與字母“O”、數(shù)字“6”與字母“G”因?yàn)樽中蜗嘟a(chǎn)生的影響。字母“G”我可以設(shè)計(jì)得跟“6”不一致,但是字母“O”怎么設(shè)計(jì)都是一個(gè)圓圈,于是只好改它的數(shù)字“0”了——給它加上一條右上至左下的斜線。于是,數(shù)字“0”的失量庫完整如下:
'==========代碼開始==========
CDGen_SetDirection -60' 逆時(shí)針60度(相對(duì)于垂直線)
CDGen_FowardDraw -0.7' 反方向繪制0.7個(gè)單位
CDGen_SetDirection -60' 逆時(shí)針60度
CDGen_FowardDraw -0.7' 反方向繪制0.7個(gè)單位
CDGen_SetDirection 120' 順時(shí)針120度
CDGen_FowardDraw 1.5' 繪制1.5個(gè)單位
CDGen_SetDirection -60' 逆時(shí)針60度
CDGen_FowardDraw 0.7' 繪制0.7個(gè)單位
CDGen_SetDirection -60' 順時(shí)針120度
CDGen_FowardDraw 0.7' 繪制0.7個(gè)單位
CDGen_Close 0' 封閉當(dāng)前筆與第0筆(0開始)
'添加一條斜線,以免與字母O混淆()
CDGen_MoveToMiddle 2, 100' 移動(dòng)畫筆的位置到第3筆(0開始)的結(jié)尾處
CDGen_CloseToMiddle 0, 0' 將當(dāng)前畫筆位置與第1筆(0開始)的開端封閉
'==========代碼結(jié)束==========
  在設(shè)計(jì)字母“E”的時(shí)候,考慮到三條水平線,要給它加上角度隨機(jī)量,隨機(jī)量很容易計(jì)算,如我要產(chǎn)生“正負(fù)20度”只要“20 - Rnd * 40”即可。但是原有的“CDGen_SetDirection”函數(shù)都是在以往的角度基礎(chǔ)上旋轉(zhuǎn)的,這樣在畫第二、三條水平線的時(shí)候角度會(huì)受前面的影響,比如如果三次都是正20,那最后一條線將產(chǎn)生60度的隨機(jī)量,于是我增加了一個(gè)函數(shù)“CDGen_SetDirectionFormZero”,它的作用是以0度為基準(zhǔn)進(jìn)行隨機(jī)量的設(shè)定,代碼如下:
'==========代碼開始==========
Sub CDGen_SetDirectionFormZero(nAngle)
 '按指定角度設(shè)定畫筆方向,與CDGen_SetDirection的區(qū)別是以0度為基準(zhǔn)
 nAngle = Sgn(nAngle) * (Abs(nAngle) - nAngleRandom + Rnd * nAngleRandom * 2) / 180 * 3.1415926
 DirX = - Sin(nAngle)
 DirY = Cos(nAngle)
End Sub
'==========代碼結(jié)束==========
  下面就可以去補(bǔ)充其它字母的失量庫了,代碼如下:
'==========代碼開始==========
Case "E"
 CDGen_SetDirection -(Rnd * 20 - 10)
 CDGen_FowardDraw 1
 CDGen_MoveToMiddle 0, 0
 CDGen_SetDirectionFormZero -(110 - Rnd * 40)
 CDGen_FowardDraw 0.7
 CDGen_MoveToMiddle 0, 50
 CDGen_SetDirectionFormZero -(110 - Rnd * 40)
 CDGen_FowardDraw 0.5
 CDGen_MoveToMiddle 0, 100
 CDGen_SetDirectionFormZero -(110 - Rnd * 40)
 CDGen_FowardDraw 0.9
Case "F"
 CDGen_SetDirection -(Rnd * 20 - 10)
 CDGen_FowardDraw 1
 CDGen_MoveToMiddle 0, 0
 CDGen_SetDirectionFormZero -(110 - Rnd * 40)
 CDGen_FowardDraw 0.7
 CDGen_MoveToMiddle 0, 50
 CDGen_SetDirectionFormZero -(110 - Rnd * 40)
 CDGen_FowardDraw 0.5
Case "G"
 CDGen_SetDirection -60
 CDGen_FowardDraw -0.7
 CDGen_SetDirection -60
 CDGen_FowardDraw -0.7
 CDGen_SetDirection 120
 CDGen_FowardDraw 1.5
 CDGen_SetDirection 120
 CDGen_FowardDraw -0.7
 CDGen_SetDirection 120
 CDGen_FowardDraw 0.7
 CDGen_SetDirection -60
 CDGen_FowardDraw 0.5
 CDGen_SetDirection 90
 CDGen_FowardDraw 0.4
 CDGen_MoveToMiddle 6, 0
 CDGen_SetDirection 180
 CDGen_FowardDraw 0.4
Case "H"
 CDGen_SetDirection -(Rnd * 20 - 10)
 CDGen_FowardDraw 1
 CDGen_MoveToMiddle 0, 50
 CDGen_SetDirection -90
 CDGen_FowardDraw 1
 CDGen_MoveToMiddle 1, 100
 CDGen_SetDirection -90
 CDGen_FowardDraw 0.5
 CDGen_MoveToMiddle 1, 100
 CDGen_SetDirection 180
 CDGen_FowardDraw 0.5
Case "I"
 CDGen_SetDirection -(Rnd * 20 - 10)
 CDGen_FowardDraw 1
 CDGen_MoveToMiddle 0, 0
 CDGen_SetDirection -90
 CDGen_FowardDraw 0.2
 CDGen_MoveToMiddle 0, 0
 CDGen_SetDirection 180
 CDGen_FowardDraw 0.2
 CDGen_MoveToMiddle 0, 100
 CDGen_FowardDraw 0.2
 CDGen_MoveToMiddle 0, 100
 CDGen_SetDirection 180
 CDGen_FowardDraw 0.2
Case "J"
 CDGen_SetDirection -90
 CDGen_FowardDraw 0.4
 CDGen_MoveToMiddle 0, 50
 CDGen_SetDirection 90
 CDGen_FowardDraw 0.6
 CDGen_SetDirection 60
 CDGen_FowardDraw 0.5
 CDGen_SetDirection 120
 CDGen_FowardDraw 0.5
Case "K"
 CDGen_SetDirection -(Rnd * 20 - 10)
 CDGen_FowardDraw 1
 CDGen_MoveToMiddle 0, 50
 CDGen_SetDirection -60
 CDGen_FowardDraw 0.6
 CDGen_MoveToMiddle 0, 50
 CDGen_SetDirection -60
 CDGen_FowardDraw 0.6
Case "L"
 CDGen_SetDirection -90
 CDGen_FowardDraw 0.2
 CDGen_MoveToMiddle 0, 50
 CDGen_SetDirectionFormZero -(Rnd * 20 - 10)
 CDGen_FowardDraw 1
 CDGen_SetDirection -(110 - Rnd * 40)
 CDGen_FowardDraw 0.8
 CDGen_SetDirectionFormZero 0
 CDGen_FowardDraw -0.3
Case "M"
 CDGen_SetDirection 0
 CDGen_FowardDraw -1
 CDGen_SetDirection -30
 CDGen_FowardDraw 0.5
 CDGen_SetDirection 60
 CDGen_FowardDraw -0.5
 CDGen_SetDirection -30
 CDGen_FowardDraw 1
Case "N"
 CDGen_SetDirection 0
 CDGen_FowardDraw -1
 CDGen_SetDirection -45
 CDGen_FowardDraw 1.4
 CDGen_SetDirection 45
 CDGen_FowardDraw -1
Case "O"
 CDGen_SetDirection -60
 CDGen_FowardDraw -0.7
 CDGen_SetDirection -60
 CDGen_FowardDraw -0.7
 CDGen_SetDirection 120
 CDGen_FowardDraw 1.5
 CDGen_SetDirection -60
 CDGen_FowardDraw 0.7
 CDGen_SetDirection -60
 CDGen_FowardDraw 0.7
 CDGen_Close 0
Case "P"
 CDGen_SetDirection 0
 CDGen_FowardDraw -1
 CDGen_SetDirection -60
 CDGen_FowardDraw 0.5
 CDGen_SetDirection 60
 CDGen_FowardDraw 0.5
 CDGen_CloseToMiddle 0, 50
Case "Q"
 CDGen_SetDirection -60
 CDGen_FowardDraw -0.7
 CDGen_SetDirection -60
 CDGen_FowardDraw -0.7
 CDGen_SetDirection 120
 CDGen_FowardDraw 1.5
 CDGen_SetDirection -60
 CDGen_FowardDraw 0.7
 CDGen_SetDirection -60
 CDGen_FowardDraw 0.7
 CDGen_Close 0
 CDGen_MoveToMiddle 4, 100
 CDGen_SetDirectionFormZero -45
 CDGen_FowardDraw 0.7
 CDGen_MoveToMiddle 4, 100
 CDGen_SetDirection 180
 CDGen_FowardDraw 0.7
Case "R"
 CDGen_SetDirection 0
 CDGen_FowardDraw -1
 CDGen_SetDirection -80
 CDGen_FowardDraw 0.5
 CDGen_SetDirection 60
 CDGen_FowardDraw 0.5
 CDGen_CloseToMiddle 0, 50
 CDGen_SetDirectionFormZero -45
 CDGen_FowardDraw 0.7
Case "S"
 CDGen_SetDirection -45
 CDGen_FowardDraw -0.5
 CDGen_SetDirection -90
 CDGen_FowardDraw -0.5
 CDGen_SetDirection 90
 CDGen_FowardDraw 1
 CDGen_SetDirection 90
 CDGen_FowardDraw 0.5
 CDGen_SetDirection 90
 CDGen_FowardDraw 0.5
Case "T"
 CDGen_SetDirection -90
 CDGen_FowardDraw 0.8
 CDGen_MoveToMiddle 0, 50
 CDGen_SetDirection 90
 CDGen_FowardDraw 1
 CDGen_MoveToMiddle 0, 0
 CDGen_SetDirection 30
 CDGen_FowardDraw 0.5
 CDGen_MoveToMiddle 0, 100
 CDGen_SetDirection -60
 CDGen_FowardDraw 0.5
Case "U"
 CDGen_FowardDraw 1
 CDGen_SetDirection -60
 CDGen_FowardDraw 0.6
 CDGen_SetDirection -60
 CDGen_FowardDraw 0.6
 CDGen_SetDirection -60
 CDGen_FowardDraw 1
Case "V"
 CDGen_SetDirection -30
 CDGen_FowardDraw 1.5
 CDGen_SetDirection 60
 CDGen_FowardDraw -1.5
Case "W"
 CDGen_SetDirection -30
 CDGen_FowardDraw 1.5
 CDGen_SetDirection 60
 CDGen_FowardDraw -1
 CDGen_SetDirection -60
 CDGen_FowardDraw 1
 CDGen_SetDirection 60
 CDGen_FowardDraw -1.5
Case "X"
 CDGen_SetDirection -45
 CDGen_FowardDraw 1.4
 CDGen_MoveToMiddle 0, 50
 CDGen_SetDirection 90
 CDGen_FowardDraw 0.7
 CDGen_MoveToMiddle 0, 50
 CDGen_FowardDraw -0.7
Case "Y"
 CDGen_SetDirection -30
 CDGen_FowardDraw 0.5
 CDGen_SetDirection 60
 CDGen_FowardDraw -0.5
 CDGen_MoveToMiddle 0, 100
 CDGen_SetDirection -30
 CDGen_FowardDraw 0.5
Case "Z"
 CDGen_SetDirection -90
 CDGen_FowardDraw 1
 CDGen_SetDirection -45
 CDGen_FowardDraw -1.4
 CDGen_SetDirection 45
 CDGen_FowardDraw 1

 3、動(dòng)網(wǎng)BBS8.0驗(yàn)證碼看不清楚的修改方法

用記事本打開Dv_GetCode.asp文件,把上面幾行的個(gè)別數(shù)值修改為(紅色為修改后的,其他的不變):

Const nMaxSaturation = 100   ' 最大色彩飽和度
Const nBlankNoisyDotOdds = 0' 空白處噪點(diǎn)率
Const nColorNoisyDotOdds = 0 ' 有色處噪點(diǎn)率
Const nCharCount = 4      ' 產(chǎn)生的字符個(gè)數(shù)
Const nPixelWidth = 20     ' 單個(gè)字符位圖的寬度
Const nPixelHeight = 20       ' 單個(gè)字符位圖的高度
Const nColorHue = 220      ' 顯示驗(yàn)證碼的色調(diào)(-1表示隨機(jī)色調(diào), -2表示灰度色調(diào))
Const nAngleRandom = 0         ' 角度隨機(jī)量
Const nLengthRandom = 0        ' 長度隨機(jī)量(百分比)

希望對(duì)你有用!

查看更多 動(dòng)網(wǎng)論壇教程  動(dòng)網(wǎng)論壇模板

來源:動(dòng)網(wǎng)論壇//所屬分類:動(dòng)網(wǎng)論壇教程/更新時(shí)間:2009-11-24
相關(guān)動(dòng)網(wǎng)論壇教程