仓酷云

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

[学习教程] ASP网页设计ASP避免同时上岸的成绩

[复制链接]
再见西城 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:06:21 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

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

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

x
asp,你就只能等着微软给你解决,它不乐意你就只好悲催。而且asp跑在windows服务器上,windows服务器跟linux比起来简直弱爆了!完成这个功效可有两种体例:
1。application
用application工具:假如做的是年夜型社区,大概要为每一个上岸id天生一个appliaction,如许做固然程序上计划会复杂些但上岸用户过量及其泯灭服务器资本,这里决不倡始,由于appliaction工具在用户上岸时天生很简单,可是要做到真实的跟着用户加入体系完整开释,到今朝还没看到更好的办法~
以下为援用的内容:
<%
.....取用户名username.....
ifApplication(username)""then
response.write"该用户已登录"
response.end
endif
Application(username)=username存进该用户的用户名
%>

在global文件中加上sessiononend事务,下线时Application("isuserlogin")=false
别的还要检测是不是吊线,有专门的举措,是server工具里的某项
(参:http://community.csdn.net/Expert/FAQ/FAQ_Index.asp?id=815)
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>

到此为止程序就完成了,这个程序的关头就是判断用户是不是在线。
SQLServer是基于服务器端的中型的数据库,可以适合大容量数据的应用,在功能上管理上也要比Access要强得多。在处理海量数据的效率,后台开发的灵活性,可扩展性等方面强大。
海妖 该用户已被删除
9#
发表于 2015-3-19 21:19:10 | 只看该作者
多看多学多思。多看一些关于ASP的书籍,一方面可以扩展知识面一方面可以鉴借别人是如何掌握、运用ASP的;多学善于关注别人,向同学老师多多学习,不论知识的大小;多思则是要将学到的知识灵活运用。
冷月葬花魂 该用户已被删除
8#
发表于 2015-3-12 11:24:40 | 只看该作者
在平时的学习过程中要注意现学现用,注重运用,在掌握了一定的基础知识后,我们可以尝试做一些网页,也许在开始的时候我们可能会遇到很多问题,比如说如何很好的构建基本框架。
乐观 该用户已被删除
7#
发表于 2015-3-5 17:15:55 | 只看该作者
那么,ASP.Net有哪些改进呢?
分手快乐 该用户已被删除
6#
发表于 2015-2-17 06:46:29 | 只看该作者
虽然ASP也有很多网络教程。但是这些都不系统。都是半路出家,只是从一个例子告诉你怎么用。不会深入讨论,更不会将没有出现在例子里的方法都一一列举出来。
飘灵儿 该用户已被删除
5#
发表于 2015-2-6 16:28:53 | 只看该作者
ASP的语言不仅仅只是命令格式差不多,而是包含在<%%>之内的命令完全就是VB语法。虽然ASP也是做为单独的一个技术来提出的,但他就是完全继承了VB所有的功能。
若天明 该用户已被删除
地板
发表于 2015-1-30 22:40:08 | 只看该作者
代码的可重用性差:由于是面向结构的编程方式,并且混合html,所以可能页面原型修改一点,整个程序都需要修改,更别提代码重用了。
再现理想 该用户已被删除
板凳
发表于 2015-1-21 21:37:09 | 只看该作者
虽然ASP也有很多网络教程。但是这些都不系统。都是半路出家,只是从一个例子告诉你怎么用。不会深入讨论,更不会将没有出现在例子里的方法都一一列举出来。
只想知道 该用户已被删除
沙发
发表于 2015-1-18 11:39:41 | 只看该作者
ASP也是这几种脚本语言中最简单易学的开发语言。但ASP也是这几种语言中唯一的一个不能很好支持跨平台的语言。  因为ASP脚本语言非常简单,因此其代码也简单易懂,结合HTML代码,可快速地完成网站的应用程序。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-11-16 15:58

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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