网络编程
位置:首页>> 网络编程>> Asp编程>> Discuz!NT 论坛整合ASP程序论坛教程

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

 来源:asp之家 发布时间:2011-03-31 11:09:00 

标签:Discuz!NT,论坛,ASP程序

代码如下:


登陆时记录cookies页面代码

<!--#include file="md5.asp"--> //32位md5加密文件,一定得调用,该文件到处有,我就不提供了 
<% 
dim Username,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] where username='"&Username"'" //为了方便,此处我就不加过滤函数了,如你使用时一定加上,否则被注入 
set rs=conn.execute(sql) 
if rs.eof then 
Response.Write ("<script>alert('提示!\n\n用户帐号错误!');history.back();</script>") 
Response.end 
else 
if rs("password")<>md5(Password) then 
Response.Write ("<script>alert('提示!\n\n用户密码错误!');history.back();</script>") 
Response.end 
else 
if rs("secques")<>Answer then 
Response.Write ("<script>alert('提示!\n\n安全答案错误!');history.back();</script>") 
Response.end 
else 
Dim DES,DESCode 
Set DES=Server.CreateObject("DiscuzNT.DES") 
DESCode=DES.Encode(""&rs("password")"","Z143D2VBML") //Z143D2VBML为你的DES加密密钥,请用记事本打开CONFIG目录里的general.config文件,找到<Passwordkey>Z846D4VVZL</Passwordkey>这行,<Passwordkey>与</Passwordkey>中间的英文就是你的密钥,把密钥修改成你的文件的 
Set DES=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 
if Expires<>0 then 
Response.Cookies("dnt").Expires = DateAdd("N", Expires, Now()) 
end if 
Response.Cookies("dnt").Domain = ".xxx.com" //修改为你的域名,注意前面带.(点) 
Response.Cookies("dnt").Secure = False 
end if 
end if 
end if 
rs.close 
set rs=nothing 
//此处加登陆后转向或向其他操作,具体你自己看着办 
%> 注册页面代码(注册完后同时登陆状态)

<!--#include file="md5.asp"--> //32为md5加密文件,一定得调用,该文件到处有,我就不提供了 
<% 
dim Username,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] where username='"&Username"'" //为了方便,此处我就不加过滤函数了,如你使用时一定加上,否则被注入 
set rs=conn.execute(sql) 
if not rs.eof then 
Response.Write ("<script>alert('提示!\n\n用户帐号已被注册使用!');history.back();</script>") 
Response.end 
end if 
rs.close 
set rs=nothing 
sql="select * from [dnt_users] where Email='"&Email"'" //为了方便,此处我就不加过滤函数了,如你使用时一定加上,否则被注入 
set rs=conn.execute(sql) 
if not rs.eof then 
Response.Write ("<script>alert('提示!\n\n电子邮箱已被注册使用!');history.back();</script>") 
Response.end 
end if 
rs.close 
set rs=nothing 
ip = request.servervariables("http_x_forwarded_for") 
if ip = "" then ip = request.servervariables("remote_addr") 
sql="insert into [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)" 
set rs=conn.execute(sql) 
sql="select uid from [dnt_users] where username='"&Username"'" //为了方便,此处我就不加过滤函数了,如你使用时一定加上,否则被注入 
set rs=conn.execute(sql) 
Uid=rs(0) 
sql="insert into [dnt_userfields] (uid,avatar,avatarwidth,avatarheight,authtime,authflag) values ('"&Uid"','avatars\common\0.gif',0,0,'"&now()"',0)" 
set rs=conn.execute(sql) 
sql="update [dnt_statistics] set totalusers=totalusers+1,lastusername='"&Username"',lastuserid='"&Uid"'" 
set rs=conn.execute(sql) 
sql="select * from [dnt_users] where username='"&Username"'" //为了方便,此处我就不加过滤函数了,如你使用时一定加上,否则被注入 
set rs=conn.execute(sql) 
if rs.eof then 
Response.Write ("<script>alert('提示!\n\n用户帐号错误!');history.back();</script>") 
Response.end 
else 
if rs("password")<>md5(Password) then 
Response.Write ("<script>alert('提示!\n\n用户密码错误!');history.back();</script>") 
Response.end 
else 
Dim DES,DESCode 
Set DES=Server.CreateObject("DiscuzNT.DES") 
DESCode=DES.Encode(""&rs("password")"","Z143D2VBML") //Z143D2VBML为你的DES加密密钥,请用记事本打开CONFIG目录里的general.config文件,找到<Passwordkey>Z846D4VVZL</Passwordkey>这行,<Passwordkey>与</Passwordkey>中间的英文就是你的密钥,把密钥修改成你的文件的 
Set DES=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 
end if 
end if 
rs.close 
set rs=nothing 
//此处加注册后转向或向另外一个用户表添加同步用户数据,具体你自己看着办 
%> 编辑页面代码(编辑密码后无需重新登陆)

<!--#include file="md5.asp"--> //32为md5加密文件,一定得调用,该文件到处有,我就不提供了 
<% 
dim Username,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不能为空等或字段长度等 
if Password<>"" then 
if Password<>CheckPassword then 
Response.Write ("<script>alert('提示!\n\n验证密码与用户密码不相同!');history.back();</script>") 
Response.end 
end if 
Password=MD5(Password) 
else 
Password=U_Password //U_Password为你的32位MD5加密密码,在验证时读取出来用来这里验证 
end if 
if AnswerTrue="true" then 
if Question<>0 then 
Answer=mid(MD5(Answer+MD5(Question)),16,8) 
else 
Answer=" " 
end if 
else 
Answer=U_Secques //U_Secques为你的密码答案,在验证时读取出来用来这里验证 
end if 
ip = request.servervariables("http_x_forwarded_for") 
if ip = "" then ip = request.servervariables("remote_addr") 
sql="select * from [dnt_users] where username='"&Username"'" //为了方便,此处我就不加过滤函数了,如你使用时一定加上,否则被注入 
set rs=Conn.execute(Sql) 
If Rs.eof then 
Response.Write ("<script>alert('提示!\n\n用户帐号错误!');history.back();</script>") 
Response.end 
else 
sql="select * from [dnt_users] where email='"&Email"' and username<>'"&Username"'" //为了方便,此处我就不加过滤函数了,如你使用时一定加上,否则被注入 
set rs=conn.execute(sql) 
if not rs.eof then 
response.write ("<script>alert('友情提示!\n\n邮箱已被使用!');history.back();</script>") 
response.end 
else 
sql="update [dnt_users] set password='"&Password"',secques='"&Answer"',email='"&Email"' where username='"&Username"'" //为了方便,此处我就不加过滤函数了,如你使用时一定加上,否则被注入 
set rs=conn.execute(sql) 
Set DES=Server.CreateObject("DiscuzNT.DES") 
DESCode=DES.Encode(""&Password"","Z143D2VBML") //Z143D2VBML为你的DES加密密钥,请用记事本打开CONFIG目录里的general.config文件,找到<Passwordkey>Z846D4VVZL</Passwordkey>这行,<Passwordkey>与</Passwordkey>中间的英文就是你的密钥,把密钥修改成你的文件的 
Set DES=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 
end if 
end if 
rs.close 
set rs=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程序验证文件来修改

<%
Dim DES,DESCode 
Set DES=Server.CreateObject("DiscuzNT.DES") 
DESCode=DES.Decode(""&request.cookies("dnt")("password")"","Z143D2VBML") //Z143D2VBML为你的DES加密密钥,请用记事本打开CONFIG目录里的general.config文件,找到<Passwordkey>Z846D4VVZL</Passwordkey>这行,<Passwordkey>与</Passwordkey>中间的英文就是你的密钥,把密钥修改成你的文件的 
Set DES=Nothing 
//下面是读取数据库来验证你的cookies是否正确 
dim U_UId,U_UserName,U_Password,U_Secques,U_Email 
Sql="select uid,username,password,secques,email from [dnt_users] where uid='"&request.cookies("dnt")("userid")"' and password='"&DESCode"'" //为了方便,cookies用户和密码我就不加过滤函数了,如你使用时一定加上,否则被注入,就过滤些单引号及一些比较敏感的就可以了 
Set Rs=Conn.execute(Sql) 
if not rs.eof then 
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 
end if 
rs.close 
set rs=nothing 
%>

0
投稿

猜你喜欢

  • 在ASP中,如何获得ADO的连接信息?    具体方法见下列代码:<%Sub Connecti
  • XHTML规范中有一条标准就是“每个XHTML标签都有一个结束标记”。那么对于HTML中原来不带结束标记的元素,则在该结束前加上“/”来关闭
  • 判断访问是否来自搜索引擎的函数,有兴趣的可以试试! <% '检查当前用户是否是蜘蛛人 Function check(
  •    <!--  -----------[test]表生成脚本---------------
  • innerHTML 属性的使用非常流行,因为他提供了简单的方法完全替代一个 HTML 元素的内容。另外一个方法是使用 DOM Level 2
  • 经过了上个星期的努力学习,对处理html又有了新的发现感觉真的很不错可以说js的威力在处理html代码方面我又有所领悟了1、截取特定长度字符
  • aspImage是ServerObjects站点上非常好的一个组件,它可以使我们利用Asp实现很多对于图形的处理功能,他的功能强大,如果你需
  • SQL是用于访问ORACLE数据库的语言,PL/SQL扩展和加强了SQL的功能,它 同时引入了更强的程序逻辑。 PL/SQL支持DML命令和
  • 1.delete不能使自动编号返回为起始值。但是truncate能使自动增长的列的值返回为默认的种子 2.truncate只能一次清空,不能
  • 简介这是一篇介绍网页设计原则的文章。在互联网迅速发展的今天,各种web  2.0网站竞争激烈,你死我亡。Jini,  D
  • PL/SQL单行函数和组函数详解 函数是一种有零个或多个参数并且有一个返回值的程序。在SQL中Oracle内建了一系列函数,这些函数都可被称
  • 建立资料表:Step1首先开启phpmyadmin,进入wordpress资料库中,并新增一个wp_gbook的资料表与栏位数目8。Step
  • YUI3.2.0 的 transition 模块,通过使用 transition:end 事件实现在 transition 完成后执行其他操
  • 如何做一个树状展开视图来显示自己的记录结构?在SQL中,如何做一个可收起和展开树状结构图?就是资源管理器左栏的那种效果。这要用到Data s
  • 前几天翻出以前写的一个纯CSS仿微软经典菜单,现在看来才感叹,微软的经典菜单确实很经典,至少看起来不觉得厌烦。感叹归感叹,想想既然可以实现下
  • SQL Server 阻止了对组件 'Ad Hoc Distributed&nbs
  • 写任何编程代码,不同的开发者都会有不同的见解。但参考一下总是好的,下面是来自 Javascript Toolbox 发布的 14条最佳JS代
  • 在SQL Server 2005中,它的另外一个强大的新特点是数据库快照。数据库快照是一个数据库的只读副本,它是数据库所有数据的映射,由快照
  • 如果你是一位ASP爱好者,你一定想过ASP的执行效率如何?大家都知道ASP效率和CGI的比,在访问量少的时候,它们是不相上下的,有时可能CG
  • 导读:这篇论坛文章主要介绍了使用SQL Server升级顾问的具体步骤,详细内容请参考下文。微软提供了SQL Server 2008升级顾问
手机版 网络编程 asp之家 www.aspxhome.com