zl程序教程

您现在的位置是:首页 >  移动开发

当前栏目

Discuz!NT论坛整合ASP程序论坛教程

ASP教程程序 整合 论坛 discuz nt
2023-06-13 09:14:10 时间
复制代码代码如下:

登陆时记录cookies页面代码
<!--#includefile="md5.asp"-->//32位md5加密文件,一定得调用,该文件到处有,我就不提供了
<%
dimUsername,Password,Question,Answer,Expires,Verify
Username=replace(trim(Request.form("Username")),""","""")//用户名
Password=replace(trim(Request.form("Password")),""","""")//用户密码
Question=replace(trim(Request.form("Question")),""","""")//密码问题
Answer=replace(trim(Request.form("Answer")),""","""")//密码答案
Expires=replace(trim(Request.form("Expires")),""","""")//cookies记录时长
Verify=replace(trim(Request.form("Verify")),""","""")//验证码
//此处加上提交的验证,如xxx不能为空等或字段长度等
sql="select*from[dnt_users]whereusername=""&Username"""//为了方便,此处我就不加过滤函数了,如你使用时一定加上,否则被注入
setrs=conn.execute(sql)
ifrs.eofthen
Response.Write("<script>alert("提示!\n\n用户帐号错误!");history.back();</script>")
Response.end
else
ifrs("password")<>md5(Password)then
Response.Write("<script>alert("提示!\n\n用户密码错误!");history.back();</script>")
Response.end
else
ifrs("secques")<>Answerthen
Response.Write("<script>alert("提示!\n\n安全答案错误!");history.back();</script>")
Response.end
else
DimDES,DESCode
SetDES=Server.CreateObject("DiscuzNT.DES")
DESCode=DES.Encode(""&rs("password")"","Z143D2VBML")//Z143D2VBML为你的DES加密密钥,请用记事本打开CONFIG目录里的general.config文件,找到<Passwordkey>Z846D4VVZL</Passwordkey>这行,<Passwordkey>与</Passwordkey>中间的英文就是你的密钥,把密钥修改成你的文件的
SetDES=Nothing
Response.Cookies("dnt")("userid")=rs("uid")
Response.Cookies("dnt")("password")=DESCode
Response.Cookies("dnt")("tpp")=rs("tpp")
Response.Cookies("dnt")("ppp")=rs("ppp")
Response.Cookies("dnt")("pmsound")=rs("pmsound")
Response.Cookies("dnt")("invisible")=rs("invisible")
Response.Cookies("dnt")("referer")="index.aspx"
Response.Cookies("dnt")("sigstatus")=rs("sigstatus")
Response.Cookies("dnt")("expires")=Expires
ifExpires<>0then
Response.Cookies("dnt").Expires=DateAdd("N",Expires,Now())
endif
Response.Cookies("dnt").Domain=".xxx.com"//修改为你的域名,注意前面带.(点)
Response.Cookies("dnt").Secure=False
endif
endif
endif
rs.close
setrs=nothing
//此处加登陆后转向或向其他操作,具体你自己看着办
%>



===========================================================================================
注册页面代码(注册完后同时登陆状态)

<!--#includefile="md5.asp"-->//32为md5加密文件,一定得调用,该文件到处有,我就不提供了
<%
dimUsername,Password,CheckPassword,Email,Question,Answer,Verify
Username=replace(trim(Request.form("Username")),""","""")//用户名
Password=replace(trim(Request.form("Password")),""","""")//用户密码
CheckPassword=replace(trim(Request.form("CheckPassword")),""","""")//密码验证
Question=replace(trim(Request.form("Question")),""","""")//密码问题
Answer=replace(trim(Request.form("Answer")),""","""")//密码答案
Expires=replace(trim(Request.form("Expires")),""","""")//cookies记录时长
Verify=replace(trim(Request.form("Verify")),""","""")//验证码
//此处加上提交的验证,如xxx不能为空等或字段长度等
sql="select*from[dnt_users]whereusername=""&Username"""//为了方便,此处我就不加过滤函数了,如你使用时一定加上,否则被注入
setrs=conn.execute(sql)
ifnotrs.eofthen
Response.Write("<script>alert("提示!\n\n用户帐号已被注册使用!");history.back();</script>")
Response.end
endif
rs.close
setrs=nothing
sql="select*from[dnt_users]whereEmail=""&Email"""//为了方便,此处我就不加过滤函数了,如你使用时一定加上,否则被注入
setrs=conn.execute(sql)
ifnotrs.eofthen
Response.Write("<script>alert("提示!\n\n电子邮箱已被注册使用!");history.back();</script>")
Response.end
endif
rs.close
setrs=nothing
ip=request.servervariables("http_x_forwarded_for")
ifip=""thenip=request.servervariables("remote_addr")
sql="insertinto[dnt_users](username,nickname,password,secques,gender,adminid,groupid,groupexpiry,extgroupids,regip,joindate,lastip,lastvisit,lastactivity,lastpost,lastpostid,lastposttitle,posts,digestposts,oltime,pageviews,credits,extcredits1,extcredits2,extcredits3,extcredits4,extcredits5,extcredits6,extcredits7,extcredits8,avatarshowid,email,bday,sigstatus,tpp,ppp,templateid,pmsound,showemail,newsletter,invisible,newpm,newpmcount,accessmasks,onlinestate)values(""&Username"","",""&MD5(Password)"",""&Answer"",0,0,10,0,"",""&ip"",""&now()"",""&ip"",""&now()"",""&now()"",""&now()"",0,"",0,0,0,0,0,"0.00","0.00","0.00","0.00","0.00","0.00","0.00","0.00",0,""&Email"","",1,0,0,0,1,1,1,0,1,1,0,1)"
setrs=conn.execute(sql)
sql="selectuidfrom[dnt_users]whereusername=""&Username"""//为了方便,此处我就不加过滤函数了,如你使用时一定加上,否则被注入
setrs=conn.execute(sql)
Uid=rs(0)
sql="insertinto[dnt_userfields](uid,avatar,avatarwidth,avatarheight,authtime,authflag)values(""&Uid"","avatars\common\0.gif",0,0,""&now()"",0)"
setrs=conn.execute(sql)
sql="update[dnt_statistics]settotalusers=totalusers+1,lastusername=""&Username"",lastuserid=""&Uid"""
setrs=conn.execute(sql)
sql="select*from[dnt_users]whereusername=""&Username"""//为了方便,此处我就不加过滤函数了,如你使用时一定加上,否则被注入
setrs=conn.execute(sql)
ifrs.eofthen
Response.Write("<script>alert("提示!\n\n用户帐号错误!");history.back();</script>")
Response.end
else
ifrs("password")<>md5(Password)then
Response.Write("<script>alert("提示!\n\n用户密码错误!");history.back();</script>")
Response.end
else
DimDES,DESCode
SetDES=Server.CreateObject("DiscuzNT.DES")
DESCode=DES.Encode(""&rs("password")"","Z143D2VBML")//Z143D2VBML为你的DES加密密钥,请用记事本打开CONFIG目录里的general.config文件,找到<Passwordkey>Z846D4VVZL</Passwordkey>这行,<Passwordkey>与</Passwordkey>中间的英文就是你的密钥,把密钥修改成你的文件的
SetDES=Nothing
Response.Cookies("dnt")("userid")=rs("uid")
Response.Cookies("dnt")("password")=DESCode
Response.Cookies("dnt")("tpp")=rs("tpp")
Response.Cookies("dnt")("ppp")=rs("ppp")
Response.Cookies("dnt")("pmsound")=rs("pmsound")
Response.Cookies("dnt")("invisible")=rs("invisible")
Response.Cookies("dnt")("referer")="index.aspx"
Response.Cookies("dnt")("sigstatus")=rs("sigstatus")
Response.Cookies("dnt")("expires")=0
Response.Cookies("dnt").Domain=".xxx.com"//修改为你的域名,注意前面带.(点)
Response.Cookies("dnt").Secure=False
endif
endif
rs.close
setrs=nothing
//此处加注册后转向或向另外一个用户表添加同步用户数据,具体你自己看着办
%>



===========================================================================================
编辑页面代码(编辑密码后无需重新登陆)

<!--#includefile="md5.asp"-->//32为md5加密文件,一定得调用,该文件到处有,我就不提供了
<%
dimUsername,Password,CheckPassword,Email,Question,Answer,Verify
Username=replace(trim(Request.form("Username")),""","""")//用户名
Password=replace(trim(Request.form("Password")),""","""")//用户密码
CheckPassword=replace(trim(Request.form("CheckPassword")),""","""")//密码验证
Question=replace(trim(Request.form("Question")),""","""")//密码问题
Answer=replace(trim(Request.form("Answer")),""","""")//密码答案
Expires=replace(trim(Request.form("Expires")),""","""")//cookies记录时长
Verify=replace(trim(Request.form("Verify")),""","""")//验证码
//此处加上提交的验证,如xxx不能为空等或字段长度等
ifPassword<>""then
ifPassword<>CheckPasswordthen
Response.Write("<script>alert("提示!\n\n验证密码与用户密码不相同!");history.back();</script>")
Response.end
endif
Password=MD5(Password)
else
Password=U_Password//U_Password为你的32位MD5加密密码,在验证时读取出来用来这里验证
endif
ifAnswerTrue="true"then
ifQuestion<>0then
Answer=mid(MD5(Answer+MD5(Question)),16,8)
else
Answer=""
endif
else
Answer=U_Secques//U_Secques为你的密码答案,在验证时读取出来用来这里验证
endif
ip=request.servervariables("http_x_forwarded_for")
ifip=""thenip=request.servervariables("remote_addr")
sql="select*from[dnt_users]whereusername=""&Username"""//为了方便,此处我就不加过滤函数了,如你使用时一定加上,否则被注入
setrs=Conn.execute(Sql)
IfRs.eofthen
Response.Write("<script>alert("提示!\n\n用户帐号错误!");history.back();</script>")
Response.end
else
sql="select*from[dnt_users]whereemail=""&Email""andusername<>""&Username"""//为了方便,此处我就不加过滤函数了,如你使用时一定加上,否则被注入
setrs=conn.execute(sql)
ifnotrs.eofthen
response.write("<script>alert("友情提示!\n\n邮箱已被使用!");history.back();</script>")
response.end
else
sql="update[dnt_users]setpassword=""&Password"",secques=""&Answer"",email=""&Email""whereusername=""&Username"""//为了方便,此处我就不加过滤函数了,如你使用时一定加上,否则被注入
setrs=conn.execute(sql)
SetDES=Server.CreateObject("DiscuzNT.DES")
DESCode=DES.Encode(""&Password"","Z143D2VBML")//Z143D2VBML为你的DES加密密钥,请用记事本打开CONFIG目录里的general.config文件,找到<Passwordkey>Z846D4VVZL</Passwordkey>这行,<Passwordkey>与</Passwordkey>中间的英文就是你的密钥,把密钥修改成你的文件的
SetDES=Nothing
Response.Cookies("dnt")("userid")=rs("uid")
Response.Cookies("dnt")("password")=DESCode
Response.Cookies("dnt")("tpp")=rs("tpp")
Response.Cookies("dnt")("ppp")=rs("ppp")
Response.Cookies("dnt")("pmsound")=rs("pmsound")
Response.Cookies("dnt")("invisible")=rs("invisible")
Response.Cookies("dnt")("referer")="index.aspx"
Response.Cookies("dnt")("sigstatus")=rs("sigstatus")
Response.Cookies("dnt")("expires")=0
Response.Cookies("dnt").Domain=".xxxx.com"//修改为你的域名,注意前面带.(点)
Response.Cookies("dnt").Secure=False
endif
endif
rs.close
setrs=nothing
//此处加编辑后转向或向另外一个用户表添加同步用户数据,具体你自己看着办
%>


=============================================================================================
退出验证cookies页面代码

<%
Response.Cookies("dnt")("userid")=""
Response.Cookies("dnt")("password")=""
Response.Cookies("dnt")("tpp")=""
Response.Cookies("dnt")("ppp")=""
Response.Cookies("dnt")("pmsound")=""
Response.Cookies("dnt")("invisible")=""
Response.Cookies("dnt")("referer")=""
Response.Cookies("dnt")("sigstatus")=""
Response.Cookies("dnt")("expires")=""
Response.Cookies("dnt").Expires=""
Response.Cookies("dnt").Domain=".xxx.com"
Response.Cookies("dnt").Secure=False
Response.Write("<script>alert("提示!\n\n用户注销登陆完毕!");self.opener.location.reload();window.close();</script>")
Response.end
%>


==============================================================================================
验证cookies页面代码,这是我为了简单随手写的一段验证代码,基本都是大同小异,具体你根据你的asp程序验证文件来修改
%>
DimDES,DESCode
SetDES=Server.CreateObject("DiscuzNT.DES")
DESCode=DES.Decode(""&request.cookies("dnt")("password")"","Z143D2VBML")//Z143D2VBML为你的DES加密密钥,请用记事本打开CONFIG目录里的general.config文件,找到<Passwordkey>Z846D4VVZL</Passwordkey>这行,<Passwordkey>与</Passwordkey>中间的英文就是你的密钥,把密钥修改成你的文件的
SetDES=Nothing
//下面是读取数据库来验证你的cookies是否正确
dimU_UId,U_UserName,U_Password,U_Secques,U_Email
Sql="selectuid,username,password,secques,emailfrom[dnt_users]whereuid=""&request.cookies("dnt")("userid")""andpassword=""&DESCode"""//为了方便,cookies用户和密码我就不加过滤函数了,如你使用时一定加上,否则被注入,就过滤些单引号及一些比较敏感的就可以了
SetRs=Conn.execute(Sql)
ifnotrs.eofthen
founduser=true
U_UId=Rs(0)
U_UserName=Rs(1)
U_Password=Rs(2)
U_Secques=Rs(3)
U_Email=Rs(4)
else
founduser=false
endif
rs.close
setrs=nothing
%>