仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 476|回复: 8
打印 上一主题 下一主题

[学习教程] ASP编程:[ASP手艺]asp避免同时上岸的成绩

[复制链接]
谁可相欹 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:14:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
由于ASP还是一种Script语言所没除了大量使用组件外,没有办法提高其工作效率。它必须面对即时编绎的时间考验,同时我们还不知其背后的组件会是一个什么样的状况;成绩完成这个功效可有两种体例:
1。application
用application工具:假如做的是年夜型社区,大概要为每一个上岸id天生一个appliaction,如许做固然程序上计划会复杂些但上岸用户过量及其泯灭服务器资本,这里决不倡始,由于appliaction工具在用户上岸时天生很简单,可是要做到真实的跟着用户加入体系完整开释,到今朝还没看到更好的办法~
<%
.....取用户名username.....
ifApplication(username)""then
response.write"该用户已登录"
response.end
endif
Application(username)=username存进该用户的用户名
%>
在global文件中加上sessiononend事务,下线时Application("isuserlogin")=false
别的还要检测是不是吊线,有专门的举措,是server工具里的某项
2。数据库+asp
做起来大概会庞大些,可是合适有大批上岸用户的体系。
起首为用户创建数据库-用access新建一个onlyTOL8.mdb
数据表1:users寄存用户注册材料
下设数据表:uID(主动编号)userName(字符型)userPass(字符型)
数据表2:onlyLogin寄存用户一时上岸信息
下设数据表:OLname(字符型)OLtime(日期型)OLip(字符型)
数据库建好后间接向users表中手动增加数据userName表增加TOL8,userPass内外增加111,
上面来做用户上岸界面,复制上面代码存成onlyLogin.asp文件。
<html>
<head>
<metahttp-equiv="Content-Type"content="text/html;charset=gb2312">
<title>克制统一账号分歧区域同时上岸</title>
</head>
<body>
<formname="form1"method="post"action="loginPost.asp">
用户名:<inputname="userName"type="text"id="userName"size="15"maxlength="5">
暗码:<inputname="userPass"type="password"id="userPass"size="15"maxlength="15">
<inputtype="submit"name="Submit"value="Login">
</form>
</body>
</html>

完成后在新建一个loginCONN.asp文件复制上面的代码保留用于毗连数据库
<%
DimCONN_TOL8
DimConn_T
Dimmmdd
mmdd="onlyTOL8.mdb"
SetCONN_TOL8=Server.CreateObject("ADODB.Connection")
Conn_T="Provider=Microsoft.Jet.OLEDB.4.0;DataSource="&Server.MapPath(""&mmdd&"")
onerrorresumenext
CONN_TOL8.OpenConn_T%>

上面做一个loginPost.asp文件也存在这个目次下,这是关头,细心看上面的代码:
<!--#includefile="loginCONN.asp"-->
<%
删除maxTime工夫外部举动的用户,maxTime在loginCONN.asp文件内里已界说好了
Conn_TOL8.Execute("DeleteFromonlyLoginwhereDATEDIFF(s,OLtime,now())>"&maxTime&"")
================================================================
Dimrs,ts,txt,sql,userName,userPass
ifRequest.Form("Submit")="Login"then
userName=Request.Form("userName")猎取表单用户上岸名
userPass=Request.Form("userPass")猎取表单用户上岸暗码
因为我们这里会商的不是平安成绩以是用户暗码都没有加密
Setrs=Server.CreateObject("ADODB.RECORDSET")
sql="SELECT*FROMuserswhereuserName="&userName&"anduserPass="&userPass&""
rs.Opensql,CONN_TOL8,1,1
IFnotrs.eofthen
CallisOK(userName)用户名暗码准确挪用次历程,isOK将会鄙人面的程序中定制。
else
Response.Write("<ahref=javascript:history.go(-1)>用户名或暗码毛病</a>")
Response.End()
endif
rs.Close
Setrs=Nothing
endif
SubisOK(userName)
DimOlip数据库中以后上岸用户名保留的ip
DimOltime数据库中以后上岸用户名保留的最初革新网页的工夫,是盘算用户是不是在线的主要数据。
DimOLip1纪录以后用户上岸ip,用来辨别是不是为统一用户的标示
OLip1=Request.ServerVariables("REMOTE_ADDR")获得提交上岸信息用户的IP
Setts=Conn_TOL8.execute("Select*FROMonlyLoginWHEREOLname="&userName&"")
ifnotts.eofthen查询数据库是不是有此用户的上岸过的信息
OLtime=ts("OLtime")
OLip=ts("OLip")
ifOLip1OLipandDateDiff("s",OLtime,now())<maxTimethen
上句判别假如提交上岸用户ip不是数据库中最初记录的用户ip而且
用户的最初举动工夫和以后工夫相隔并没凌驾划定的秒数则确认此用户以后在线
Response.Write"<ahref=javascript:history.go(-1)>此用户今朝在线,你没法从其他中央上岸此账号!</a>"
Response.End()
else
不然的话判断上岸乐成付值给session
Session("lgName")=userName
Session("lgPass")=userPass
Response.Redirect"loginOK.asp"
Response.End
endif
else
假如数据库没有次上岸用户记录则实行上面的语句
Dimls
Setls=Server.CreateObject("ADODB.RECORDSET")
ls.Open"Select*FromonlyLogin",CONN_TOL8,2,2
ls.ADDNEW
ls("OLname")=userName
ls("OLip")=OLip1
ls("OLtime")=NOW()
ls.UPDATE
ls.Close
Setls=Nothing
判断上岸乐成付值给session
Session("lgName")=userName
Session("lgPass")=userPass
Response.Redirect"loginOK.asp"
Response.End
endif
EndSub%>

上岸乐成后叶面会跳转到loginOK.asp
<styletype="text/CSS">
<!--
body{background-color:#FF9900;}
-->
</style>
<%IFSession("lgName")""then%>
您上岸乐成了!!!上面是潜进网页内的iframe为的是在划定的工夫革新网页向服务器呈报你是不是在线
为了便于辨别,frame网页我们接纳了红色作为底色
<iframeborder=0name=new_datemarginwidth=0framespacing=0marginheight=0src="loginFrame.asp"
frameborder=0noResizewidth=100scrolling=noheight=30vspale="0"></iframe>
<%else%>
您没有上岸哈
<%endif%>

上面要做的是loginFrame.asp
<!--#includefile="loginCONN.ASP"-->
<%CONN_TOL8.Execute("UpdateonlyLoginSetOLtime="&NOW()&"whereOLname="&Session("lgName")&"")%>
<html><head><metahttp-equiv="refresh"content="<%=(maxTime-5)%>;url=""></head></html>

到此为止程序就完成了,这个程序的关头就是判断用户是不是在线
asp可以轻松地实现对页面内容的动态控制,根据不同的浏览者,显示不同的页面内容。而浏览者一点觉察不出来,就像为他专门制作的页面一样。使用各种各样的组件,asp可以完成无比强大的功能。
老尸 该用户已被删除
沙发
发表于 2015-1-18 10:47:05 | 只看该作者
接下来就不能纸上谈兵了,最好的方法其实是实践。实践,只能算是让你掌握语言特性用的。而提倡做实际的Project也不是太好,因为你还没有熟练的能力去综合各种技术,这样只能使你自己越来越迷糊。
因胸联盟 该用户已被删除
板凳
发表于 2015-1-21 21:02:21 | 只看该作者
不能只是将它停留在纸上谈兵的程度上。
柔情似水 该用户已被删除
地板
发表于 2015-1-30 22:31:28 | 只看该作者
兴趣爱好,那么你无须学编程,申请一个域名和空间,在网上下载一些免费开源的CMS系统,你不用改代码,只须熟悉它们的后台操作,像office一样简单方便,很快就能建一个站点,很多站长都是这样做的
海妖 该用户已被删除
5#
发表于 2015-2-6 16:24:59 | 只看该作者
弱类型造成潜在的出错可能:尽管弱数据类型的编程语言使用起来回方便一些,但相对于它所造成的出错几率是远远得不偿失的。
灵魂腐蚀 该用户已被删除
6#
发表于 2015-2-17 06:04:21 | 只看该作者
我想问如何掌握学习节奏(先学什么再学什么)最好详细点?
兰色精灵 该用户已被删除
7#
发表于 2015-3-5 16:58:26 | 只看该作者
运用ASP可将VBscript、javascript等脚本语言嵌入到HTML中,便可快速完成网站的应用程序,无需编译,可在服务器端直接执行。容易编写,使用普通的文本编辑器编写,如记事本就可以完成。由脚本在服务器上而不是客户端运行,ASP所使用的脚本语言都在服务端上运行。
乐观 该用户已被删除
8#
发表于 2015-3-12 11:03:18 | 只看该作者
兴趣爱好,那么你无须学编程,申请一个域名和空间,在网上下载一些免费开源的CMS系统,你不用改代码,只须熟悉它们的后台操作,像office一样简单方便,很快就能建一个站点,很多站长都是这样做的
分手快乐 该用户已被删除
9#
发表于 2015-3-19 20:58:06 | 只看该作者
完全不知道到底自己学的是什么。最后,除了教程里面说的几个例子,还是什么都不会。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-26 12:46

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表