4.2 数据库连接函数 SQL Server数据连接要求提供用户名,密码,数据库名及数据库服务器地址,下面是使用ADO连接数据库的代码: copyright paper51.com 1 <% dim conn’打开数据库连接 copyright paper51.com 2 set conn = server.CreateObject("adodb.connection") 内容来自www.paper51.com
3 conn.open = "dirver ={sql server};server=(服务器地址);uid=用户名;pwd=密码;database=数据库名; " %> 内容来自论文无忧网 www.paper51.com 4 <% conn.close’关闭数据库连接 内容来自www.paper51.com 5 Set conn=nothing %> paper51.com 4.3 用户模块 内容来自论文无忧网 www.paper51.com 4.3.1 用户登录 http://www.paper51.com 下面是一个用户登录的界面,如图7。 http://www.paper51.com paper51.com 图7 用户登录界面 内容来自www.paper51.com 下面是对用户登录页面的表单处理程序 copyright paper51.com 1 <% '验证码处理 内容来自www.paper51.com 2 If trim(request.form("validatecode"))=empty or http://www.paper51.com Trim(Session("cnbruce.com_ValidateCode"))<>Trim(Request.Form("validatecode")) Then paper51.com
3 response.write("请注意正确输入验证码") 内容来自论文无忧网 www.paper51.com 4 response.end 内容来自www.paper51.com
5 end if http://www.paper51.com 6 session("user")=request.Form("username") copyright paper51.com 7 user=request.Form("username") paper51.com 8 session("pwd")=request.Form("userpwd") 内容来自论文无忧网 www.paper51.com 9 pwd=request.Form("userpwd") copyright paper51.com 10 ishidden=request.Form("hidden") 内容来自www.paper51.com 11 set rs = server.CreateObject("adodb.recordset") http://www.paper51.com 12 sql="select * from user_t where username='"&session("user")&"' and userpassword='"&session("pwd")&"'" copyright paper51.com 13 rs.open sql,conn,3,3 paper51.com 14 if rs.eof and rs.bof then '判断用户是否存在 内容来自www.paper51.com 15 response.Redirect("login_error.asp") copyright paper51.com 16 else 内容来自www.paper51.com
17 session("userid")=rs("userid") paper51.com
18 sql1="update user_t set userhidden='"&ishidden&"' where userid='"&session("userid")&"'"'用户是否隐身 内容来自www.paper51.com 19 conn.execute(sql1) 内容来自论文无忧网 www.paper51.com
20 select case request("usercookie")'把用户信息写入Cookie copyright paper51.com 21 case "1" copyright paper51.com 22 response.Cookies("user")("username")=user paper51.com 23 response.Cookies("user")("userpassword")=pwd 内容来自论文无忧网 www.paper51.com 24 response.Cookies("user").expires=date()+1 http://www.paper51.com 25 case "2" copyright paper51.com
26 response.Cookies("user")("username")=user paper51.com 27 response.Cookies("user")("userpassword")=pwd paper51.com 28 response.Cookies("user").expires=date()+7 copyright paper51.com 29 case "3" 内容来自www.paper51.com
30 response.Cookies("user")("username")=user 内容来自www.paper51.com 31 response.Cookies("user")("userpassword")=pwd copyright paper51.com 32 response.Cookies("user").expires=date()+365 http://www.paper51.com 33 end select http://www.paper51.com 34 session("name")=request.Form("username") paper51.com 35 response.Write("<meta http-equiv=refresh content='2;url=index.asp'>") paper51.com 36 response.Write(session("name")) copyright paper51.com 37 response.Write("!欢迎你回来!") 内容来自论文无忧网 www.paper51.com
38 response.Write("两秒钟后自动转入首页") copyright paper51.com
39 end if paper51.com 40 rs.close 内容来自www.paper51.com 41 set rs=nothing %> 内容来自论文无忧网 www.paper51.com 程序说明:第1~5行是对验证码的处理;第6~10行是将从表单获取的数据存入变量;第11~14行是依据输入的用户名和密码为条件对用户信息表user_t进行查找,如果没有查找到记录说明该用户输入的用户名或密码错误;第15行转到错误处理页面;第18~19行是将用户是否隐身登录标记,即是对用户信息表中的userhidden字段标记;第20~33行是将用户信息写入Cookie。 内容来自论文无忧网 www.paper51.com
4.3.2 用户注册 内容来自www.paper51.com 用户注册,首先要检查的就是用户填写的信息,其中包括: http://www.paper51.com
1. 字段是否空白,若空白则不接受。 copyright paper51.com 2. 输入的E-mail是否正确,若E-mail中没有@,@符号位于E-mail的第一个字符或者@位于E-mail的最后一个字符都算错误。 http://www.paper51.com
3. 两次输入的密码是否一致。 http://www.paper51.com 4. 用户名是否被使用。 http://www.paper51.com 5. 电子邮件是否被使用。 copyright paper51.com http://www.paper51.com 图8用户注册各个页面与数据库的关系 paper51.com 下面是验证用户注册信息的程序: paper51.com 1 <% a=instr(request("userpassword"),"*") 内容来自论文无忧网 www.paper51.com 2 b=instr(request("userpassword")," ") 内容来自www.paper51.com 3 if username=""or useremail=""or userquestion=""or useranswer=""or userpassword=""or userpassword1=""then paper51.com
4 response.Write("必填信息不能为空,请填完!") copyright paper51.com 5 elseif userpassword<>userpassword1 then 内容来自论文无忧网 www.paper51.com 6 response.Write("两次输入密码不一致,请重新输入!") paper51.com
7 elseif len(username)>10 then http://www.paper51.com 8 response.Write("你输入的用户名太长,请重新输入!") copyright paper51.com 9 elseif len(userpassword)<6 or len(userpassword)>18 then copyright paper51.com
10 response.Write("密码不符合要求,请重新输入!") 内容来自论文无忧网 www.paper51.com
11 elseif not isvalidemail(useremail) then paper51.com
12 response.Write("电子邮件地址错误,请重新输入") 内容来自论文无忧网 www.paper51.com
13 elseif a<>0 or b<>0 then 内容来自www.paper51.com 14 response.Write("请不要将‘*’和‘ ’等符号作为密码!") http://www.paper51.com 15 elseif useronly(username,useremail) then 内容来自www.paper51.com 16 response.Write("用户名被占用!") 内容来自论文无忧网 www.paper51.com
17 else 内容来自论文无忧网 www.paper51.com 18 验证通过后将用户信息写入用户信息表user_t 内容来自www.paper51.com
19 end if %> 内容来自论文无忧网 www.paper51.com 程序说明:第1~2行是取出密码中“*”和“ ”在字符串中的位置;第11行调用了isvalidmail函数,该函数是验证电子邮件地址正确性;第15行调用了useronly函数,该函数是验证用户名和电子邮件唯一性;下面给出验证电子邮件正确性的程序: http://www.paper51.com 1 function isvalidemail(email) 内容来自www.paper51.com 2 dim names,named,I,c 内容来自论文无忧网 www.paper51.com
3 isvalidemail=true 内容来自论文无忧网 www.paper51.com
4 names=split(email,”@”) 内容来自www.paper51.com 5 if ubound(names)<>1 then paper51.com 6 isvalidemail=false paper51.com 7 exit function copyright paper51.com 8 end if http://www.paper51.com 9 for each named in names http://www.paper51.com
10 if len(named)<=0 then copyright paper51.com 11 isvalidemail=false paper51.com 12 exit function 内容来自www.paper51.com
13 end if http://www.paper51.com 14 for i=1 to len(named) 内容来自论文无忧网 www.paper51.com 15 c=lcase(mid(named,I,1)) http://www.paper51.com 16 if instr(“abcdefghijklmnopqrstuvwxyz_-.”,c)<=0 and not isnumericI then http://www.paper51.com
17 isvalidemail=false 内容来自www.paper51.com
18 exit function http://www.paper51.com 19 end if 内容来自www.paper51.com 20 next 内容来自www.paper51.com 21 if left(named,1)=”.” Or right(named,1)=”.” Then 内容来自www.paper51.com 22 isvalidemail=false http://www.paper51.com 23 exit function 内容来自www.paper51.com
24 end if paper51.com
25 next paper51.com 26 if instr(names(1),”.”)<=0 then paper51.com 27 isvalidemail=false paper51.com
28 exit function http://www.paper51.com 29 end if http://www.paper51.com 30 i=len(names(1))-instrrev(names(1),”.”) paper51.com 31 if i<>2 and i<>3 then 内容来自www.paper51.com 32 isvalidemail=false copyright paper51.com 33 exit function 内容来自论文无忧网 www.paper51.com
34 end if 内容来自www.paper51.com 35 if instr(email,”..”)>0 then paper51.com 36 isvalidemail=false 内容来自www.paper51.com 37 end if copyright paper51.com 38 end function copyright paper51.com |