asp實現(xiàn)帶刷新功能的驗證碼代碼
將以下代碼放到一個單獨的頁面checkcode.asp
<%
Option Explicit
Response.buffer=true
Call Com_CreatValidCode("validateCode")
Sub Com_CreatValidCode(pSN)
' 禁止緩存
Response.Expires = -9999
Response.AddHeader "Pragma","no-cache"
Response.AddHeader "cache-ctrol","no-cache"
Response.ContentType = "Image/BMP"
Randomize
Dim i, ii, iii
Const cOdds = 2 ' 雜點出現(xiàn)的機率
Const cAmount = 10 ' 文字數(shù)量
Const cCode = "0123456789"
' 顏色的數(shù)據(jù)(字符,背景)
Dim vColorData(1)
vColorData(0) = ChrB(0) & ChrB(0) & ChrB(211) ' 藍0,綠0,紅0(黑色)
vColorData(1) = ChrB(255) & ChrB(255) & ChrB(255) ' 藍250,綠236,紅211(淺藍色)
' 隨機產(chǎn)生字符
Dim vCode(4), vCodes
For i = 0 To 3
vCode(i) = Int(Rnd * cAmount)
vCodes = vCodes & Mid(cCode, vCode(i) + 1, 1)
Next
Session(pSN) = vCodes '記錄入Session
' 字符的數(shù)據(jù)
Dim vNumberData(9)
vNumberData(0) =
"1110000111110111101111011110111101001011110100101111010010111101001011110111101111011110111
110000111"
vNumberData(1) =
"1111011111110001111111110111111111011111111101111111110111111111011111111101111111110111111
100000111"
vNumberData(2) =
"1110000111110111101111011110111111111011111111011111111011111111011111111011111111011110111
100000011"
vNumberData(3) =
"1110000111110111101111011110111111110111111100111111111101111111111011110111101111011110111
110000111"
vNumberData(4) =
"1111101111111110111111110011111110101111110110111111011011111100000011111110111111111011111
111000011"
vNumberData(5) =
"1100000011110111111111011111111101000111110011101111111110111111111011110111101111011110111
110000111"
vNumberData(6) =
"1111000111111011101111011111111101111111110100011111001110111101111011110111101111011110111
110000111"
vNumberData(7) =
"1100000011110111011111011101111111101111111110111111110111111111011111111101111111110111111
111011111"
vNumberData(8) =
"1110000111110111101111011110111101111011111000011111101101111101111011110111101111011110111
110000111"
vNumberData(9) =
"1110001111110111011111011110111101111011110111001111100010111111111011111111101111011101111
110001111"
' 輸出圖像文件頭
Response.BinaryWrite ChrB(66) & ChrB(77) & ChrB(230) & ChrB(4) & ChrB(0) & ChrB(0) & ChrB(0)
& ChrB(0) &_
ChrB(0) & ChrB(0) & ChrB(54) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(40) & ChrB(0) &_
ChrB(0) & ChrB(0) & ChrB(40) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(10) & ChrB(0) &_
ChrB(0) & ChrB(0) & ChrB(1) & ChrB(0)
' 輸出圖像信息頭
Response.BinaryWrite ChrB(24) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(176)
& ChrB(4) &_
ChrB(0) & ChrB(0) & ChrB(18) & ChrB(11) & ChrB(0) & ChrB(0) & ChrB(18) & ChrB(11) &_
ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) &_
ChrB(0) & ChrB(0)
For i = 9 To 0 Step -1 ' 歷經(jīng)所有行
For ii = 0 To 3 ' 歷經(jīng)所有字
For iii = 1 To 10 ' 歷經(jīng)所有像素
' 逐行、逐字、逐像素地輸出圖像數(shù)據(jù)
If Rnd * 99 + 1 < cOdds Then ' 隨機生成雜點
Response.BinaryWrite vColorData(0)
Else
Response.BinaryWrite vColorData(Mid(vNumberData(vCode(ii)), i * 10 + iii, 1))
End If
Next
Next
Next
End Sub
%>
需要用得頁面用如下方式引用:
驗證碼: src="checkcode.asp " alt="驗證碼,看不清楚?請點擊刷新驗證碼" height="10" style="cursor :
pointer;" onClick="this.src='checkcode.asp?t='+(new Date().getTime());" >
判斷頁面:
<%
if trim(session("validateCode")) <> trim(Request("txt_check")) then
ErrorMessage = "請輸入正確的驗證碼"
response.write(" <script>alert('"&ErrorMessage&"');location.href='Default.asp' </script>")
response.end
end if
%>
以上所述就是本文的全部內(nèi)容了,希望大家能夠喜歡。
相關(guān)文章
網(wǎng)站開發(fā)防止中文亂碼需要了解的codepage的重要性小結(jié)
這幾天研究UTF-8編碼,太暈了,把我的看法和各位討論討論。 歡迎來批啊。以下都是我的想法,哪里有不對的請不吝賜教,幫忙指出來。2010-06-06
服務(wù)器XMLHTTP(Server XMLHTTP in ASP)基礎(chǔ)知識
幾年很流行 Ajax,而 Ajax 的本質(zhì)就是 XMLHttpRequest,是客戶端 XMLHttpRequest 對象的使用。2010-08-08
ASP備份SQL Server數(shù)據(jù)庫改進版
改進的ASP備份SQL Server數(shù)據(jù)庫,網(wǎng)上原理的不是很好,需要的朋友可以參考下。2011-02-02
asp中獲取當(dāng)前頁面的地址與參數(shù)的函數(shù)代碼
asp中獲取當(dāng)前頁面的地址與參數(shù)的函數(shù)代碼,經(jīng)常需要用得到,特整理下,方便需要的朋友。2011-01-01
ASP中實現(xiàn)執(zhí)行定時任務(wù)的方法
這篇文章主要介紹了ASP中實現(xiàn)執(zhí)行定時任務(wù)的方法,本文使用WSH (Windows Scripting Host) 的實現(xiàn)定時任務(wù),需要的朋友可以參考下2014-07-07
asp下利用fso實現(xiàn)文件夾或文件移動改名等操作函數(shù)
以后利用fso來操作文件和文件夾就方便了2008-01-01
asp+javascript實現(xiàn)404頁的處理轉(zhuǎn)換
用404來來解決頁面路徑的變換的方法2008-06-06
Access數(shù)據(jù)庫中“所有記錄中均未找到搜索關(guān)鍵字”的解決方法
這個是Access一個天生不足的表現(xiàn),出現(xiàn)此錯誤是因為你的Access數(shù)據(jù)庫有錯誤了。2008-08-08

