Discuz!NT 论坛整合ASP程序论坛教程
来源:asp之家 发布时间:2011-03-31 11:09:00
代码如下:
登陆时记录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
%>
猜你喜欢
- 在上篇博客中,提到了对一个脚本进行的多次优化。当时以为已经优化得差不多了,但是当测试人员测试时,我才发现,踩到了Python的一个大坑。在上
- oracle 的表空间实例详解查询表空间SELECT UPPER(F.TABLESPACE_NAME) "表空间名",
- Windows10平台下MySQL的安装、配置、启动和登录及配置环境变量1.1 在MySQL的官网上下载安装文件并配置MySQL提示:在安装
- 准备工作B站登录页 https://passport.bilibili.com/loginpython3pip install seleni
- 1.shelve对象的持久存储不需要关系数据库时,可以用shelve模块作为持久存储Python对象的一个简单的选择。类似于字典,shelf
- 学习bootstrapTable 一直没有找到 单选框的选定的和取值的教程,今天写一个.作为笔记1. 效果图: 点击 bootstrapTa
- pyhook下载:http://sourceforge.net/projects/pyhook/files/pyhook/1.5.1/pyh
- 本文实例讲述了ThinkPHP中url隐藏入口文件后接收alipay传值的方法。分享给大家供大家参考。具体方法如下:现在公司项目的需求变化多
- 这是Smashing Magazine花费几个月的时间研究编写的2009 年Web设计风格与潮流,Smashing Magazine 的编辑
- python3批量删除豆瓣分组下的好友的实现代码"""python3批量删除豆瓣分组下的好友2016年6月7日
- 数据库系统的安全性包括很多方面。由于很多情况下,数据库服务器容许客户机从网络上连接,因此客户机连接的安全对MySQL数据库安全有很重要的影响
- 一、需求golang默认的结构体json转码出来,都是根据字段名生成的大写驼峰格式,但是一般我们最常用的json格式是小写驼峰或者小写下划线
- 求N的阶乘本题要求编写程序,计算N的阶乘。输入格式:输入在一行中给出一个正整数 N。输出格式:在一行中按照“produc
- 说明本文根据https://github.com/liuchengxu/blockchain-tutorial的内容,用python实现的,
- 我就废话不多说了,直接上代码吧!import turtlet=turtle.Turtle()turtle.Turtle().screen.d
- 首先要知道,修改滚动条样式,利用伪元素-webkit-scrollbar。注意, ::-webkit-scrollbar仅仅支持WebKit
- nn.Module中定义参数:不需要加cuda,可以求导,反向传播class BiFPN(nn.Module): def __i
- 从Python3.2引入的concurrent.futures模块,Python2.5以上需要在pypi中安装futures包。future
- 如何用JAVASCRIPT格式化数字成货币那种表示法?,比如说 34585962.00显示 为 34,585,962.00<scrip
- 本文用的是sciki-learn库的iris数据集进行测试。用的模型也是最简单的,就是用贝叶斯定理P(A|B) = P(B|A)*P(A)/