ASP防止同時(shí)登陸的問(wèn)題

字號(hào):

實(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)看到更好的方法~
    <%
    .....取用戶名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文件。
    
    
    
    禁止同一賬號(hào)不同地區(qū)同時(shí)登陸
    

    
    

    用戶名:
    密碼:
    
    

    
    

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