论文无忧网提供:计算机毕业论文范文|计算机毕业设计|计算机毕业论文
栏目导航 ASP Java Web .NET VB6.0 JAVA VC VF DELPHI PB 计算机网络 计算机科学与技术 PHP 安卓APP 其他 C# 代写论文
当前位置: > 计算机 > ASP >

(B)学生论坛1.0版

第四章 模块的实现

4.1 用户模块 内容来自www.paper51.com

    4.1.1 用户的登陆

copyright paper51.com

    首先看用户的登陆。在用户信息表里用户名和用户密码字段是用来验证用户身份的,用这两个字段来写验证用户登陆的程序。 http://www.paper51.com

    登陆页面命名为Login.asp,这个页面包含了输入用户名和密码、Cookie选项、和隐身登陆选项。隐身登陆只是一个判断登陆状态的标识。主要是验证用户身份和把用户信息写入Cookie。 paper51.com

首先看验证用户身份的程序,如程序4-1。 内容来自www.paper51.com

程序4-1 验证用户身份程序(Login.asp) 内容来自www.paper51.com

    sqlstr="UserName='"&username&"'" paper51.com

Sql="SelectUserID,UserName,UserPassword,UserEmail,UserPost,UserTopic,UserSex,UserFace, copyright paper51.com

UserWidth,UserHeight,JoinDate,LastLogin,UserLogins,Lockuser,Userclass,UserGroupID, 内容来自www.paper51.com

UserGroup,userWealth,userEP,userCP,UserPower,UserBirthday,UserLastIP,UserDel,UserIsBest,

copyright paper51.com

UserHidden,UserMsg,IsChallenge,UserMobile,TitlePic,UserTitle,TruePassWord,UserToday"

内容来自论文无忧网 www.paper51.com

       Sql=Sql+"From [Dv_User] Where "&sqlstr&""

paper51.com

       setrsUser=Mybbs.Execute(sql)

内容来自www.paper51.com

       IfrsUser.eof and rsUser.bof Then

http://www.paper51.com

              ChkUserLogin=false 内容来自www.paper51.com

              ExitFunction

paper51.com

       Else

copyright paper51.com

              iMyUserInfo=rsUser.GetString(,1,"|||", "", "") copyright paper51.com

              rsUser.Close:SetrsUser = Nothing 内容来自论文无忧网 www.paper51.com

       EndIf

内容来自论文无忧网 www.paper51.com

       iMyUserInfo= "Mybbs|||"& Now & "|||" & Now&"|||"& Mybbs.BoardID &"|||"& iMyUserInfo

copyright paper51.com

&"||||||Mybbs"

copyright paper51.com

       iMyUserInfo= Split(iMyUserInfo,"|||") copyright paper51.com

       Iftrim(password)<>trim(iMyUserInfo(6)) Then

内容来自论文无忧网 www.paper51.com

                     ChkUserLogin=false 内容来自www.paper51.com

       ElseIfiMyUserInfo(17)=1 Then 内容来自论文无忧网 www.paper51.com

                     ChkUserLogin=false

http://www.paper51.com

       ElseIfiMyUserInfo(19)=5 Then

内容来自www.paper51.com

                     ChkUserLogin=false

内容来自www.paper51.com

       Else 内容来自www.paper51.com

                     ChkUserLogin=True paper51.com

                     Session(Mybbs.CacheName& "UserID") = iMyUserInfo

paper51.com

                     Mybbs.UserID= iMyUserInfo(4)

内容来自论文无忧网 www.paper51.com

                     RegName= iMyUserInfo(5) http://www.paper51.com

                     Article= iMyUserInfo(8)

http://www.paper51.com

                     UserLastLogin= iMyUserInfo(15)

copyright paper51.com

                     UserClass= iMyUserInfo(18)                    

http://www.paper51.com

                     GroupID= iMyUserInfo(19)

内容来自www.paper51.com

                     TitlePic= iMyUserInfo(34)

paper51.com

                     IfArticle<0 Then Article=0 内容来自论文无忧网 www.paper51.com

       EndIf http://www.paper51.com

首先是一个查询用户身份的SQL语句,输入某个用户后将从数据表User_T中查找该用户。setrsUser=Mybbs.Execute(sql)一句是用来执行这条SQL语句,同时返回一个包含了查询信息的记录集。If rsUser.eof and rsUser.bof Then一句判断用户信息是否存在。如果不为空,就将把数据集的信息写入储存用户信息的字符串中。If trim(password)<>

内容来自论文无忧网 www.paper51.com

trim(iMyUserInfo(6)) Then一句判断用户密码是否和数据库中的用户密码相同。 内容来自论文无忧网 www.paper51.com

       Cookie是对于一些有限制注册用户才能看的页面用来识别是否登陆的。是由Web页服务器置于你硬盘上的一个很小的文本文件,一般不超过4KB。程序4-2是把用户信息写入Cookie的程序。 paper51.com

程序4-2 把用户信息写入Cookie(Login.asp) paper51.com

       selectcase usercookies 内容来自www.paper51.com

       case"0" 内容来自www.paper51.com

              Response.Cookies(Mybbs.Forum_sn)("usercookies")= usercookies

http://www.paper51.com

       case1 http://www.paper51.com

           Response.Cookies(Mybbs.Forum_sn).Expires=Date+1 paper51.com

              Response.Cookies(Mybbs.Forum_sn)("usercookies")= usercookies

copyright paper51.com

       case2

paper51.com

              Response.Cookies(Mybbs.Forum_sn).Expires=Date+31 内容来自www.paper51.com

              Response.Cookies(Mybbs.Forum_sn)("usercookies")= usercookies

内容来自www.paper51.com

       case3 paper51.com

              Response.Cookies(Mybbs.Forum_sn).Expires=Date+365

内容来自论文无忧网 www.paper51.com

              Response.Cookies(Mybbs.Forum_sn)("usercookies")= usercookies 内容来自www.paper51.com

       endselect

paper51.com

       Response.Cookies(Mybbs.Forum_sn).path= Mybbs.cookiepath

paper51.com

       Response.Cookies(Mybbs.Forum_sn)("username")= regname

http://www.paper51.com

       Response.Cookies(Mybbs.Forum_sn)("userid")= Mybbs.UserID 内容来自www.paper51.com

       Response.Cookies(Mybbs.Forum_sn)("password")= TruePassWord

内容来自www.paper51.com

       Response.Cookies(Mybbs.Forum_sn)("userclass")= userclass copyright paper51.com

       Response.Cookies(Mybbs.Forum_sn)("userhidden")= userhidden paper51.com

    Response是ASP的一个内置对象,Cookies是这个对象用来向浏览器写Cookie文件的集合。Cookies集合设置Cookie的值。若指定的Cookie不存在,则创建它,若存在。则设置新的值并且将旧值删除。Response.Cookies(Mybbs.Forum_sn).Expires=Date+1是用来保存用户选择的Cookie保存时间的,在选择时间内再次来论坛则可以不用再登陆了。

http://www.paper51.com

       4.1.2 用户的注册 内容来自论文无忧网 www.paper51.com

       用户注册也关系到信息的验证,必须确定一些信息符合一定的规则和要求。用户注册后可以修改自己的信息和密码,如果忘记密码还有相关取回密码的操作。 内容来自www.paper51.com

       首先就是用户的注册,命名为reg.asp,主要是对用户所填写信息的检测。主要包括字段是否为空,是不是满足长度、字符方面的要求;输入E-mail是否正确,主要判别是@字符是否存在和存在的位置;两次输入的密码是否一致;用户名是否已经存在,电子邮件是否被使用。 内容来自www.paper51.com

       注册首先是要向数据库提交你所填写的信息,这些所填写的信息大多是表单的形式,可以使用Request.form()来获取表单内的文本框。Request是ASP的内置对象,Form是Request的一个获得表单的集合。 copyright paper51.com

(1) 用户名的验证:在获取的同时就可以对文件长度等进行检测,使用Cint()函数进行强制执行整数运算判断是否在可接受的范围之内。

内容来自论文无忧网 www.paper51.com

Cint(Mybbs.Forum_Setting(41)) orstrLength(Request.form("name")) 内容来自www.paper51.com

<Cint(Mybbs.Forum_Setting(40)) 内容来自www.paper51.com

使用InStr函数来判断是否存在非法的字符。

内容来自论文无忧网 www.paper51.com

       IfInstr(username,"=")>0 or Instr(username,"%")>0 orInstr(username,chr(32))>0 or

http://www.paper51.com

  Instr(username,"?")>0 orInstr(username,"&")>0 or Instr(username,";")>0 orInstr(username,",")>0

copyright paper51.com

  or Instr(username,"'")>0 orInstr(username,",")>0 or Instr(username,chr(34))>0 or

内容来自论文无忧网 www.paper51.com

 Instr(username,chr(9))>0 orInstr(username," ")>0 or Instr(username,"$")>0

http://www.paper51.com

(2) 密码的验证:主要验证的是密码的长度,采用Len()函数,可以返回字符串中字符的个数。参数可以是字符串也可以是变量名。 copyright paper51.com

IfRequest.form("psw")="" orlen(Request.form("psw"))>10 orlen(Request.form("psw"))<6 Then http://www.paper51.com

                     ErrCodes=ErrCodes+"<li>"+template.Strings(13) paper51.com

       (3)电子邮件的验证:邮件的地址一般是“用户名@域名”,采用VBScript的函数Split(),可以返回一个一维数组。在参数部分可以设置“@”为字符串的标识界限。用这个符号来拆分电子邮件地址,形成数组。UBound()函数返回了数组维数的最大可用下标。 http://www.paper51.com

Dim names,name,i,c http://www.paper51.com

Is ValidEmail=true 内容来自论文无忧网 www.paper51.com

Names=Split(email,”@”)

内容来自论文无忧网 www.paper51.com

If UBound(names)<>1 then 内容来自www.paper51.com

       IsVailEmail=false paper51.com

       Exitfunction

内容来自www.paper51.com

End If

内容来自www.paper51.com

       而用户的注册信息如果是合法的则在提交注册信息后要将这个注册信息插入到数据库中去,可以使用Recordset对象。

内容来自www.paper51.com

set rs=Server.CreateObject(“ADODB.Recordset”)

内容来自论文无忧网 www.paper51.com

sql=”select * from [User_T]

paper51.com

rs.open sql,conn,2,3 内容来自www.paper51.com

rs.addnew

paper51.com

rs(“Username”)=username

http://www.paper51.com

rs(“Userpassword”)=password

paper51.com

rs(“UserEmail”)=useremail

内容来自论文无忧网 www.paper51.com

rs(“Userclass”)=userclass

内容来自论文无忧网 www.paper51.com

rs(“TitlePic”)=titlepic 内容来自www.paper51.com

rs.update 内容来自论文无忧网 www.paper51.com

rs.close 内容来自论文无忧网 www.paper51.com

set rs=nothing copyright paper51.com

       但光有Recordset对象没有Connection对象也没有用,Connection对象已经写入了连接数据库的函数Conn.asp。 内容来自www.paper51.com

       ConnStr= "Provider = Microsoft.Jet.OLEDB.4.0;Data Source = " &Server.MapPath(db)

内容来自www.paper51.com

       Setconn = Server.CreateObject("ADODB.Connection")

http://www.paper51.com

       conn.openConnStr 内容来自论文无忧网 www.paper51.com

       setrs=server.createobject("adodb.recordset") 内容来自论文无忧网 www.paper51.com

       sql="select* from [User_T] where username=’”&username&”’ copyright paper51.com

       rs.opensql,conn,1,3

http://www.paper51.com

       在上面程序里,conn对象的功能是连接数据库,rs的功能是打开数据表User_T。而Connection对象的功能是连接数据库,连接程序如下: http://www.paper51.com

Sub ConnectionDatabase 内容来自www.paper51.com

       DimConnStr

copyright paper51.com

              Db= "data/mybbs7.mdb"

paper51.com

              ConnStr= "Provider = Microsoft.Jet.OLEDB.4.0;Data Source = " &Server.MapPath(db) 内容来自论文无忧网 www.paper51.com

              Setconn = Server.CreateObject("ADODB.Connection") http://www.paper51.com

       conn.openConnStr 内容来自论文无忧网 www.paper51.com

       ConnStr= "Provider = Microsoft.Jet.OLEDB.4.0;Data Source = " &Server.MapPath(db)一句分别设置了Provide参数和Data Source参数。

paper51.com

       用户注册后要修改自己的信息。修改信息就是将原来用户的信息显示出来,待用户修改提交表单后更新数据库中的信息,这里同样要对用户新输入的信息进行检测,这个和用户注册部分的检测是一样的,只是没有了对用户名的检测。所以用户信息的修改的程序与用户注册是很相似的,只少了rs.addnew一句,另外在选取信息的时候的语句有所不同。

paper51.com

sql=”Select * from [User_T]” whereuserid=”& UserID

内容来自论文无忧网 www.paper51.com

       通过这一句可以准确的定位到用户的编号UserID的这条记录,这是利用了Recordset对象的查询功能,然后使用Recordset对象的写入功能,用rs.Update结束。 copyright paper51.com

       虽然用户的用户名不可以更改,但是用户的密码是可以更改的,这是用户身份验证的标识,同时也可以更改自己的密码提问和密码答案。这些更改也基本上和用户信息修改的程序相同,利用用户的编号取出用户的信息,验证用户的修改信息后更新数据库。 copyright paper51.com

------分隔线----------------------------
联系方式