本文给大家分享的是一段使用asp实现的验证码功能,而且是带刷新的,代码非常简洁,非常实用,有需要的小伙伴可以参考下。
将以下代码放到一个单独的页面checkcode.asp
- <%
- OptionExplicit
- Response.buffer=true
- CallCom_CreatValidCode(validateCode)
- SubCom_CreatValidCode(pSN)
- '禁止缓存
- Response.Expires=-9999
- Response.AddHeaderPragma,no-cache
- Response.AddHeadercache-ctrol,no-cache
- Response.ContentType=Image/BMP
- Randomize
- Dimi,ii,iii
- ConstcOdds=2'杂点出现的机率
- ConstcAmount=10'文字数量
- ConstcCode=0123456789
- '颜色的数据(字符,背景)
- DimvColorData(1)
- vColorData(0)=ChrB(0)&ChrB(0)&ChrB(211)'蓝0,绿0,红0(黑色)
- vColorData(1)=ChrB(255)&ChrB(255)&ChrB(255)'蓝250,绿236,红211(浅蓝色)
- '随机产生字符
- DimvCode(4),vCodes
- Fori=0To3
- vCode(i)=Int(Rnd*cAmount)
- vCodes=vCodes&Mid(cCode,vCode(i)+1,1)
- Next
- Session(pSN)=vCodes'记录入Session
- '字符的数据
- DimvNumberData(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.BinaryWriteChrB(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.BinaryWriteChrB(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)
- Fori=9To0Step-1'历经所有行
- Forii=0To3'历经所有字
- Foriii=1To10'历经所有像素
- '逐行、逐字、逐像素地输出图像数据
- IfRnd*99+1<cOddsThen'随机生成杂点
- Response.BinaryWritevColorData(0)
- Else
- Response.BinaryWritevColorData(Mid(vNumberData(vCode(ii)),i*10+iii,1))
- EndIf
- Next
- Next
- Next
- EndSub
- %>
需要用得页面用如下方式引用:
验证码: src=checkcode.asp cellpadding="0" cellspacing="0" style="border-collapse: collapse; border-spacing: 0px; width: 780px; clear: both; padding: 0px !important; margin: 0px !important; font-size: 1em !important; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-bottom-right-radius: 0px !important; border-bottom-left-radius: 0px !important; background-image: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; box-sizing: content-box !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; min-height: inherit !important;">
以上所述就是本文的全部内容了,希望大家能够喜欢。