乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      asp防止同時登陸的問題

       天落雨 2006-01-17

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

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

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

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

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

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

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

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

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

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

      <html>
      <head>
      <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
      <title>禁止同一賬號不同地區(qū)同時登陸</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>


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

      <%
      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 %>


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

      <!--#include file="loginCONN.asp" -->
      <%
      ‘刪除maxTime時間內(nèi)部活動的用戶,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")‘獲取表單用戶登陸密碼
      ‘由于我們這里討論的不是安全問題所以用戶密碼都沒有加密
      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)用次過程,isOK將會在下面的程序中定制。
      else
      Response.Write("<a href=javascript:history.go(-1)>用戶名或密碼錯誤</a>")
      Response.End()
      end if
      rs.Close
      Set rs=Nothing
      end if
      Sub isOK(userName)
      Dim Olip ‘ 數(shù)據(jù)庫中當(dāng)前登陸用戶名保存的ip
      Dim Oltime ‘ 數(shù)據(jù)庫中當(dāng)前登陸用戶名保存的最后刷新網(wǎng)頁的時間,是計算用戶是否在線的重要數(shù)據(jù)。
      Dim OLip1 ‘ 記錄當(dāng)前用戶登陸ip,用來區(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ù)庫是否有此用戶的登陸過的信息
      OLtime=ts("OLtime")
      OLip=ts("OLip")
      if OLip1<>OLip and DateDiff("s",OLtime,now()) < maxTime then
      ‘上句判斷如果提交登陸用戶ip不是數(shù)據(jù)庫中最后紀(jì)錄的用戶ip并且
      ‘用戶的最后活動時間和當(dāng)前時間相隔并沒超過規(guī)定的秒數(shù)則確認(rèn)此用戶當(dāng)前在線
      Response.Write "<a href=javascript:history.go(-1)>此用戶目前在線,你無法從其他地方登陸此賬號!</a>"
      Response.End()
      else
      ‘否則的話判定登陸成功付值給session
      Session("lgName")=userName
      Session("lgPass")=userPass
      Response.Redirect "loginOK.asp"
      Response.End
      end if
      else
      ‘如果數(shù)據(jù)庫沒有次登陸用戶紀(jì)錄則執(zhí)行下面的語句
      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 %>


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

      <style type="text/css">
      <!--
      body {background-color: #FF9900;}
      -->
      </style>
      <% IF Session("lgName")<>"" then %>
      您登陸成功了?。。∠旅媸菨撊刖W(wǎng)頁內(nèi)的iframe為的是在規(guī)定的時間刷新網(wǎng)頁向服務(wù)器報告你是否在線
      為了便于區(qū)分,frame網(wǎng)頁我們采用了白色作為底色
      <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 %>
      您沒有登陸哈
      <% end if %>


      下面要做的是loginFrame.asp

      <!--#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>


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

        本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
        轉(zhuǎn)藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多