日韩天天综合网_野战两个奶头被亲到高潮_亚洲日韩欧美精品综合_av女人天堂污污污_视频一区**字幕无弹窗_国产亚洲欧美小视频_国内性爱精品在线免费视频_国产一级电影在线播放_日韩欧美内地福利_亚洲一二三不卡片区

ASP怎樣防止同時(shí)登陸_ASP教程

編輯Tag賺U幣
教程Tag:暫無(wú)Tag,歡迎添加,賺取U幣!

推薦:幾種ASP調(diào)用帶參數(shù)存儲(chǔ)過(guò)程的方式
ASP調(diào)用帶參數(shù)存儲(chǔ)過(guò)程的幾種方式 1 這也是最簡(jiǎn)單的方法,兩個(gè)輸入?yún)?shù),無(wú)返回值: set connection = server.createobject(adodb.connection) connection.open someDSN Connection.Execute procname varvalue1, varvalue2 '將所有對(duì)象清為nothing,釋放資源

實(shí)現(xiàn)這個(gè)功能可有兩種方式:

1。application

用application對(duì)象:如果做的是大型社區(qū),可能要為每個(gè)登陸id生成一個(gè)appliaction,這樣做雖然程序上設(shè)計(jì)會(huì)簡(jiǎn)單些但登陸用戶過(guò)多及其耗費(fèi)服務(wù)器資源,這里決不提倡,因?yàn)閍ppliaction對(duì)象在用戶登陸時(shí)生成很容易, 但是要做到真正的隨著用戶退出系統(tǒng)完全釋放,到目前還沒(méi)看到更好的方法~

以下為引用的內(nèi)容:

<%
.....取用戶名username.....
if Application(username)<>"" then
response.write "該用戶已經(jīng)登錄"
response.end
end if
Application(username)=username ''存入該用戶的用戶名
%>

在global文件中加上session onend事件,下線時(shí)Application("isuserlogin")=false
此外還要檢測(cè)是否吊線,有專門的辦法,是server對(duì)象里的某項(xiàng)

(參: http://community.csdn.net/Expert/FAQ/FAQ_Index.asp?id=815)

2。數(shù)據(jù)庫(kù) asp
做起來(lái)可能會(huì)復(fù)雜些,但是適合有大量登陸用戶的系統(tǒng)。

首先為用戶建立數(shù)據(jù)庫(kù)-用access新建一個(gè)onlyTOL8.mdb

數(shù)據(jù)表1: users 存放用戶注冊(cè)資料
下設(shè)數(shù)據(jù)表:uID(自動(dòng)編號(hào)) userName(字符型) userPass(字符型)

數(shù)據(jù)表2: onlyLogin 存放用戶臨時(shí)登陸信息
下設(shè)數(shù)據(jù)表: OLname(字符型) OLtime(日期型) OLip(字符型)

數(shù)據(jù)庫(kù)建好后直接向users表中手動(dòng)添加數(shù)據(jù) userName表添加TOL8,userPass表里添加111,

下面來(lái)做用戶登陸界面,復(fù)制下面代碼存成onlyLogin.asp文件。

以下為引用的內(nèi)容:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>禁止同一賬號(hào)不同地區(qū)同時(shí)登陸</title>
</head>
<body>
<form name="form1" method="post" action="loginPost.asp">
用戶名:<input name="userName" type="text" id="userName" size="15" maxlength="5">
密碼:<input name="userPass" type="password" id="userPass" size="15" maxlength="15">
<input type="submit" name="Submit" value="Login">
</form>
</body>
</html>

完成后在新建一個(gè)loginCONN.asp文件復(fù)制下面的代碼保存用于連接數(shù)據(jù)庫(kù)

以下為引用的內(nèi)容:

<%
Dim CONN_TOL8
Dim Conn_T
Dim mmdd
mmdd="onlyTOL8.mdb"
Set CONN_TOL8 = Server.CreateObject("ADODB.Connection")
Conn_T="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(""&mmdd&"")
on error resume next
CONN_TOL8.Open Conn_T %>

下面做一個(gè)loginPost.asp文件也存在這個(gè)目錄下,這是關(guān)鍵,仔細(xì)看下面的代碼:

以下為引用的內(nèi)容:

<!--#include file="loginCONN.asp" -->
<%
''刪除maxTime時(shí)間內(nèi)部活動(dòng)的用戶,maxTime 在loginCONN.asp文件里面已經(jīng)定義好了
Conn_TOL8.Execute("Delete From onlyLogin where DATEDIFF(''s'',OLtime, now()) > "& maxTime & "")
''================================================================
Dim rs, ts, txt, sql, userName, userPass
if Request.Form("Submit")="Login" then
userName=Request.Form("userName")''獲取表單用戶登陸名
userPass=Request.Form("userPass")''獲取表單用戶登陸密碼
''由于我們這里討論的不是安全問(wèn)題所以用戶密碼都沒(méi)有加密
Set rs = Server.CreateObject("ADODB.RECORDSET")
sql="SELECT * FROM users where userName = '' "& userName & "'' and userPass = '' "& userPass & "''"
rs.Open sql, CONN_TOL8,1,1
IF not rs.eof then
Call isOK(userName) '' 用戶名密碼正確調(diào)用次過(guò)程,isOK將會(huì)在下面的程序中定制。
else
Response.Write("<a href=javascript:history.go(-1)>用戶名或密碼錯(cuò)誤</a>")
Response.End()
end if
rs.Close
Set rs=Nothing
end if
Sub isOK(userName)
Dim Olip '' 數(shù)據(jù)庫(kù)中當(dāng)前登陸用戶名保存的ip
Dim Oltime '' 數(shù)據(jù)庫(kù)中當(dāng)前登陸用戶名保存的最后刷新網(wǎng)頁(yè)的時(shí)間,是計(jì)算用戶是否在線的重要數(shù)據(jù)。
Dim OLip1 '' 記錄當(dāng)前用戶登陸ip,用來(lái)區(qū)分是否為同一用戶的標(biāo)示
OLip1=Request.ServerVariables("REMOTE_ADDR")''取得提交登陸信息用戶的IP
Set ts=Conn_TOL8.execute("Select * FROM onlyLogin WHERE OLname=''"& userName & "''")
if not ts.eof then '' 查詢數(shù)據(jù)庫(kù)是否有此用戶的登陸過(guò)的信息
OLtime=ts("OLtime")
OLip=ts("OLip")
if OLip1<>OLip and DateDiff("s",OLtime,now()) < maxTime then
''上句判斷如果提交登陸用戶ip不是數(shù)據(jù)庫(kù)中最后紀(jì)錄的用戶ip并且
''用戶的最后活動(dòng)時(shí)間和當(dāng)前時(shí)間相隔并沒(méi)超過(guò)規(guī)定的秒數(shù)則確認(rèn)此用戶當(dāng)前在線
Response.Write "<a href=javascript:history.go(-1)>此用戶目前在線,你無(wú)法從其他地方登陸此賬號(hào)!</a>"
Response.End()
else
''否則的話判定登陸成功付值給session
Session("lgName")=userName
Session("lgPass")=userPass
Response.Redirect "loginOK.asp"
Response.End
end if
else
''如果數(shù)據(jù)庫(kù)沒(méi)有次登陸用戶紀(jì)錄則執(zhí)行下面的語(yǔ)句
Dim ls
Set ls=Server.CreateObject("ADODB.RECORDSET")
ls.Open"Select * From onlyLogin",CONN_TOL8,2,2
ls.ADDNEW
ls("OLname")=userName
ls("OLip")=OLip1
ls("OLtime")=NOW()
ls.UPDATE
ls.Close
Set ls=Nothing
''判定登陸成功付值給session
Session("lgName")=userName
Session("lgPass")=userPass
Response.Redirect "loginOK.asp"
Response.End
end if
End Sub %>

登陸成功后葉面會(huì)跳轉(zhuǎn)到loginOK.asp

以下為引用的內(nèi)容:

<style type="text/css">
<!--
body {background-color: #FF9900;}
-->
</style>
<% IF Session("lgName")<>"" then %>
您登陸成功了�。�!下面是潛入網(wǎng)頁(yè)內(nèi)的iframe為的是在規(guī)定的時(shí)間刷新網(wǎng)頁(yè)向服務(wù)器報(bào)告你是否在線
為了便于區(qū)分,frame網(wǎng)頁(yè)我們采用了白色作為底色
<iframe border=0 name=new_date marginwidth=0 framespacing=0 marginheight=0 src="loginFrame.asp"
frameborder=0 noResize width=100 scrolling=no height=30 vspale="0"></iframe>
<% else %>


您沒(méi)有登陸哈

以下為引用的內(nèi)容:

<% end if %>

下面要做的是loginFrame.asp

以下為引用的內(nèi)容:

<!--#include file="loginCONN.ASP" -->
<% CONN_TOL8.Execute("Update onlyLogin Set OLtime=''"& NOW() & "'' where OLname = '' "& Session("lgName") & "''") %>
<html><head><meta http-equiv="refresh" content="<%=(maxTime-5)%>; url=""></head></html>

到此為止程序就完成了,這個(gè)程序的關(guān)鍵就是判定用戶是否在線。

分享:asp批量錄入數(shù)據(jù)的實(shí)現(xiàn)
批量錄入在數(shù)據(jù)庫(kù)的應(yīng)用中比較廣泛的,關(guān)于批量錄入的方法也有好多種。下面我就結(jié)合我實(shí)際中的應(yīng)用,談一下兒我是怎么實(shí)現(xiàn)的。主要用到的是form的集合的概念,通過(guò)循環(huán)取的所有的集合內(nèi)數(shù)據(jù)�?紤]到大家看著方便,我把它集成到了一個(gè)頁(yè)面。 下面是具體的代碼

來(lái)源:模板無(wú)憂//所屬分類:ASP教程/更新時(shí)間:2009-05-17
相關(guān)ASP教程