验证码通用模块 ASP版+Ajax验证

这套验证码与网上流传的验证多少有点不同。这里的图片是单张分开、单张生成的,便于修改、代码简单。很适合我这样的菜鸟使用。

writeCheckCode.asp  通过本文件实现写图片功能,可以定义图片所以路径、文件名等

<%
' ****----参数设定----****
imgFolderPath = " images/CheckCode/ "    ' **存放路径
fileExt = " .gif "    ' **文件扩展名,要加上圆点的。可以使用的文件类型为gif  jpeg  bmp  png
imgWidth = 15    ' **图像宽
imgHeight = 20    ' **图像高
dim  imgFileName( 10 ' **文件名,不要加扩展名

imgFileName(
0 ) = " 0 "
imgFileName(
1 ) = " 1 "
imgFileName(
2 ) = " 2 "
imgFileName(
3 ) = " 3 "
imgFileName(
4 ) = " 4 "
imgFileName(
5 ) = " 5 "
imgFileName(
6 ) = " 6 "
imgFileName(
7 ) = " 7 "
imgFileName(
8 ) = " 8 "
imgFileName(
9 ) = " 9 "

' ****----写图片----****
no = request.querystring( " no " )
CheckCodeStr
= session( " CheckCodeStr " )
url
= imgFolderPath + imgFileName( cint ( mid (CheckCodeStr,no, 1 ))) + fileExt

select   case   lCase (fileExt)
    
case   " .gif "  response.ContentType = " image/gif "
    
case   " .jpg "  response.ContentType = " image/jpeg "
    
case   " .bmp "  response.ContentType = " image/bmp "
    
case   " .png "  response.ContentType = " image/png "
end   select

set  Ados = Server.CreateObject( " Adodb.Stream "
Ados.Mode
= 3  
Ados.Type
= 1  
Ados.Open 
Ados.LoadFromFile(server.mappath(url))
response.BinaryWrite Ados.read(Ados.size)
%>

 

 CheckCodeFun.asp 显示验证码及检验是否正确

<%
Response.Buffer=True
Response.ExpiresAbsolute=Now()-1
Response.Expires=0
Response.CacheControl="no-cache"
Response.AddHeader "Pragma","No-Cache"   '以上代码防止使用缓存
action = request.querystring( " action " )
if  action = " show "   then
    
' ****----生成验证码----****
     dim  CheckCode( 3 )
    
randomize ()
    
for  i = 0   to   3
        CheckCode(i)
= cint ( rnd () * 10 - 0.5 )
        CheckCodeStr
= CheckCodeStr + cStr (CheckCode(i))
    
next
    session(
" CheckCodeStr " ) = CheckCodeStr   ' **验证码存于session("CheckCodeStr")
    
    str
= " <body topmargin=0 leftmargin=0><div  οnclick='document.location.reload()' style='cursor:hand'> "
    
for  i = 1   to   4
        str
= str + " <img alt='<--看不清,换一组验证码-->' src='writeCheckCode.asp?no= " + cstr (i) + " '> "
    
next
    
' str=str+"&nbsp;&nbsp;<input type=button value='换一个' οnclick='document.location.reload()'>"    '如果不需要此按钮,可以把本行注释掉
    str = str + " </div></body> "
    
    response.write (str)
    response.end
end   if

if  action = " check "   then
    CheckCode
= request.querystring( " CheckCode " )
    Response.charset 
=   " gb2312 "
    
if  (CheckCode = session( " CheckCodeStr " ))  then
        response.write 
" yes "
    
else
        response.write 
" <font color=red>验证码不正确</font> "
    
end   if
end   if
%>

 

AjaxFun.js  Ajax调用函数

function  createXMLHttpRequest()
{        
    
try
    {
        xmlHttp 
=   new  XMLHttpRequest();
        
return  xmlHttp;
    }
    
catch (trymicrosoft)
    {
        
try
        {
            xmlHttp
= new  ActiveXObject( " Msxml2.XMLHTTP " );
            
return  xmlHttp;
        }
        
catch (othermicrosoft)
        {
            
try
            {
                xmlHttp 
=   new  ActiveXObject( " Microsoft.XMLHTTP " );
                
return  xmlHttp;
            }
            
catch (failed)
            {
                
return  xmlHttp;
            }
        }
    }
   
   
if  ( ! xmlHttp)
   {
    
return   false ;
   }
}

function  getResponseText(method,url,obj)
{
    xmlHttp
= createXMLHttpRequest();
    
if  (xmlHttp == null )
    {
        
return   " [error] " ;
    }
    xmlHttp.open(method,url);
    xmlHttp.onreadystatechange
= function ()
    {
        
if ( 4 == xmlHttp.readyState)
        {
            
if ( 200 == xmlHttp.status)
            {
                obj.innerHTML
= xmlHttp.responseText;
                xmlHttp
= null ;
            }
        }
    }
    xmlHttp.send();
}

 

test.htm  测试

< body >
< script  language =javascript  src ="AjaxFun.js" ></ script >
< script  language =javascript >
function  checkcode()
{
    cc
= CheckCodeText.value;   // 用户输入的验证码
    objHint = document.getElementById( " CheckCodeHint " );
    objHint.innerHTML
= " 正在验证.... " ;
    getResponseText(
' get ' , ' CheckCodeFun.asp?action=check&CheckCode= ' + cc,objHint);
}
</ script >
< iframe  id ="CheckCode"  src ="CheckCodeFun.asp?action=show"  name ="CheckCode"  width ="75"  height ="16"  scrolling ="no"  border ="0"  frameborder ="0" ></ iframe >
< input  type =text  name ="CheckCodeText" >
< input  type =button  value ="Check"  onclick ="checkcode()" >   < div  id ="CheckCodeHint" ></ div >
</ body >

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值