订阅本栏目 RSS您所在的位置: 深山工作室 > ASP > 正文

asp防止多个后台用户同时登陆

深山工作室 2014/5/20 14:31:43 深山 字体: 浏览 4612
 表usr,用来存放注册用户的资料
字段id '用户ID
字段name '用户名
字段pass '密码
 
表online,用来记录用户在线登陆情况,为了简单我只建立三个字段
字段oid '自动编号
字段oname '用户名
字段odata '记录活动时间(一开始是登陆时间)
 
现在我们建立登陆页login.asp
<%
if request("aciton")="chklog" then
dim rs,name,pass
name=trim(request.form("name"))
pass=trim(request.form("pass"))
if name="" or pass="" then
response.write("<script>alert('用户名,密码都不能为空!');history.go(-1)</script>"
response.end
else
'先查询用户名是否为注册用户
set rs=conn.execute("select * from usr where name='"&name&"'")
if rs.eof and rs.bof then '如果为空则提示错误
rs.close:set rs=nothing '随手关闭对象,释放资源是个好习惯
response.write("<script>alert('没有该注册用户!');history.go(-1)</script>"
response.end
else
if pass<>rs("pass") then '比较密码
rs.close:set rs=nothing
response.write("<script>alert('密码错误!');history.go(-1)</script>"
response.end
else
rs.close:set rs=nothing 
'用户名,密码都没错后,查询该用户名是否已存在于online表中
set rs=conn.execute("select * from online where oname='"&name&"'")
if rs.eof and rs.bof then '如果为空,则说明该用户没有登陆,插入该用户名和当前时间
rs.close:set rs=nothing
conn.execute"insert into online(oname,odata) values ('"&name&"',now())
session("username")=name
session("userpass")=pass
else '不为空说明该用户已登陆,给出提示
rs.close.set rs=nothing
response.write("<script>alert('该用户已登陆,如果你非正常退出,请5分钟后再尝试登陆!');history.go(-1)</script>"
response.end
end if
end if
end if
response.redirect("index.asp") '转到首页
end if
end if
%>
下面html登陆代码略过*******************************************************
 


 
接着我们来写退出页面logout.asp
<% if session("username")<>"" and session("userpass")<>"" then '不为空,先删除online表中的记录
conn.execute"delete from online where oname='"&session("username")&"'"
end if
session("username")=""
session("userpass")=""
response.redirect("index.asp") 
%>
 
 
 
下面开始写最重要的文件了 online.asp
 
<%
dim rs,name
name=session("username")
if name<>"" then '不为空时,则查询online表是否存在该用户名
set rs=conn.execute("select * from online where oname='"&name&"'")
if rs.eof and rs.bof then '为空时插入该用户名记录 
rs.close:set rs=nothing
conn.execute"insert into online(oname,odata) values ('"&name&"',now())"
else '不为空时,则更新该用户活动时间
rs.close:set rs=nothing
conn.execute"update online set odata=now() where oname='"&name&"'"
end if
end if
 conn.execute"delete from online where datediff('s',odata,now())>300" '删除300秒内不活动的用户!
%>  
 
相关阅读
windows8的iis7应用程序池标识问题
河南省中国青年旅行社
华东宾馆网站
新疆旅游在线
javascript 根据汉字拼音首字母快速定位下拉列表
吉林省文化国际旅行社有限公司
深山行者留言系统V2.2 (简称留言板V2.2)
a标签的javascript链接
更多信息>>栏目类别选择
百度小程序开发
微信小程序开发
微信公众号开发
uni-app
asp函数库
ASP
DIV+CSS
HTML
python
更多>>同类信息
ASP中Utf-8与Gb2312编码转换乱码问题的解决方法页面编码声明
asp显示随机密码
通过阿里云服务接口获得ip地址详细信息
iis点开后任务栏上有显示,但是窗口看不到的解决办法
RSA加密解密插件
微软Encoder加密解密函数
更多>>最新添加文章
dw里面查找替换使用正则删除sqlserver里面的CONSTRAINT
Android移动端自动化测试:使用UIAutomatorViewer与Selenium定位元素
抖音直播音挂载小雪花 懂车帝小程序
javascript获取浏览器指纹可以用来做投票
火狐Mozilla Firefox出现:无法载入您的Firefox配置文件 它可能已经丢失 或是无法访问 问题解决集合处理办法
在Android、iOS、Windows、MacOS中微信小程序的文件存放路径
python通过代码修改pip下载源让下载库飞起
python里面requests.post返回的res.text还有其它的吗
更多>>随机抽取信息
乱涂
在网页标题栏上或收藏夹前面显示网站ico小图标的方法
利用CSS制作的网站中新闻文章列表效果
asp中求两个数的百分比(利用百分比函数FormatPercent就可以自带%的符号)
国内组团社旅游服务商建站解决方案
Appium获取手机分辨率 & 自适应设备下滑刷新