| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 689 人关注过本帖
标题:大家好,请教关于验证码的问题.请大家帮一下啊.
只看楼主 加入收藏
dnsbgkp
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2005-10-4
收藏
 问题点数:0 回复次数:2 
大家好,请教关于验证码的问题.请大家帮一下啊.

我刚学ASP不久,以前只是学静态了网的.现在我遇到了一点关于验证码的问题.我从网上下了一个3个文件,分别是validatebody.fix,validatecode.asp,validatehead.fix.现给出validatecode.asp代码如下: <% Option Explicit Response.Buffer = True Response.Expires = -1 Response.AddHeader "Pragma","no-cache" Response.AddHeader "cache-ctrol","no-cache" Dim RndNum,ImgFileContent Randomize Timer RndNum = Cint(7999*Rnd+1000) Session("ValidateCode") = Cstr(RndNum) ImgFileContent=NumCode(RndNum) Response.ContentType = "image/BMP" Response.BinaryWrite ImgFileContent

Function NumCode(NumS) Dim NumI,NumJ Dim AdoM,AdoN Dim Arr_Img(4),NStr NStr=Cstr(NumS) For NumI=0 To 3 Arr_Img(NumI)=Cint(Mid(NStr,NumI+1,1)) Next Dim Position Set AdoM=Server.CreateObject("Adodb.Stream") AdoM.Mode=3 AdoM.Type=1 AdoM.Open Set AdoN=Server.CreateObject("Adodb.Stream") AdoN.Mode=3 AdoN.Type=1 AdoN.Open AdoM.LoadFromFile(Server.Mappath("validatebody.fix")) AdoN.Write AdoM.Read(1280) For NumI=0 To 3 AdoM.Position=(9-Arr_Img(NumI))*320 AdoN.Position=NumI*320 AdoN.Write AdoM.Read(320) Next AdoM.LoadFromFile(Server.Mappath("validatehead.fix")) Position=Lenb(AdoM.Read()) AdoM.Position=Position For NumI=0 To 9 Step 1 For NumJ=0 To 3 AdoN.Position=NumI*32+NumJ*320 AdoM.Position=Position+30*NumJ+NumI*120 AdoM.Write AdoN.Read(30) Next Next AdoM.Position = 0 NumCode = AdoM.Read() AdoM.Close:Set AdoM=Nothing AdoN.Close:Set AdoN=Nothing End Function %>

在需要添加验证码的页面中添加如下代码:

<input name='validatecode' type='text' size='5'>&nbsp;<img src='imgchk/validatecode.asp' align='absmiddle' border='0'> (在该页面得到了出现验证码和验证码输入框.这里应没问题吧) 记录接受页面处理 If Trim(Request.Form("validatecode"))=Empty Or Trim(Session("cnbruce.com_ValidateCode"))<>Trim(Request.Form("validatecode")) Then response.write("请注意正确输入验证码") response.end end if  (在这里我就不怎么懂设置了啊.我在这里也输入了这些代码,出错的话也会提示("请注意正确输入验证码"等信息啊,因为我在此这前以设置了要用户名和密码验证的,出错了信息增加了请注意正确输入验证码"的吧. 根据原来提示的方法说是在生成验证码图片的时候,同时生成了一个Session,其值就是验证码图片中的数字值。同时,提供输入框让用户输入,提交输入值后,与已有的Session值进行比较,根据判断结果做相应判断。这我就不怎么理解了啊,要怎么设置啊.帮一下忙啊.谢谢先了啊.在线等你们的消息啊.有必要的话可以加我Q的啊.

搜索更多相关主题的帖子: 验证 
2005-10-04 17:52
rainic
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:2367
专家分:0
注 册:2005-8-9
收藏
得分:0 
哗,原来这么复杂~~~
我不会~~就帮你顶顶吧
你说你刚学ASP,我学得你不应该这么快就接触这么复杂的东西

2005-10-04 21:44
yms123
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:209
帖 子:12488
专家分:19042
注 册:2004-7-17
收藏
得分:0 
这个里面的ADODB.Stream对象是读取了一个文件里的内容,的确有点复杂可能使用Stream写二进制码来生成一幅验证码图片。
2005-10-04 23:07
快速回复:大家好,请教关于验证码的问题.请大家帮一下啊.
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.012185 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved