ASP建設(shè)聊天室詳解(1)

2022-06-12發(fā)布者:ylm大?。?/span> 下載:0

文件大小:

軟件介紹

若是一個(gè)初學(xué)程式設(shè)計(jì),你能夠?qū)崿F(xiàn)寫數(shù)據(jù)庫(kù)、自動(dòng)刷新、獲取客戶IP的實(shí)驗(yàn),那么,實(shí)際上建設(shè)聊天室也就完成了一大半。首先,要完成這幾個(gè)實(shí)驗(yàn),我們至少要熟悉一些asp腳本及一些SQL命令。

  1、<%IP=Request("REMOTE_ADDR")%>
   您的IP地址為:
   <%=IP%>

   這是一段獲取客戶IP的腳本,如果你看過(guò)《ASP教程》,你應(yīng)該知道REMOTE_ADDR是
   一個(gè)服務(wù)器環(huán)境變量,返回發(fā)出請(qǐng)求的遠(yuǎn)程主機(jī)(client)的IP地址。

  2、<%
   Set Conn=Server.CreateObject("ADODB.Connection")
   Connstr="DBQ="+server.mappath("chat.mdb")+";DRIVER={Microsoft access     Driver (*.mdb)};"

   Conn.Open connstr
   sql="SELECT * FROM 在線用戶表 WHERE 姓名=" & Request("name") & ""
   Set Rs=conn.Execute(sql)

   If Rs.Bof OR Rs.Eof Then
    sz = "" & Request("name") &_
    ", "& Request("D4") &_
    ", "& time1 & ""
    into_db = "INSERT INTO 在線用戶表 ( 姓名, 性別, 登陸時(shí)間 ) VALUES(" &_
    sz & ")"
    conn.Execute(into_db)
   end if
   %>

   這是一段十分常見(jiàn)的對(duì)數(shù)據(jù)庫(kù)操作的腳本,其中包含了對(duì)數(shù)據(jù)庫(kù)的條件查詢與記錄添加。上面此段程序我們分三部分來(lái)分析,如上以空格分隔的三個(gè)部分。
  要使用組件提供的對(duì)象,請(qǐng)創(chuàng)建對(duì)象的實(shí)例并將這個(gè)新的實(shí)例分配變量名。使用ASP的Server.CreateObject方法可以創(chuàng)建對(duì)象的實(shí)例,使用腳本語(yǔ)言的變量分配指令可以為對(duì)象實(shí)例命名,如下例:
   Set Conn=Server.CreateObject("ADODB.Connection")
   這里的變量Conn 是ASP 程序創(chuàng)建的訪問(wèn)數(shù)據(jù)庫(kù)的對(duì)象實(shí)例 。
  我們要訪問(wèn)數(shù)據(jù)庫(kù),首先要必須知道這個(gè)數(shù)據(jù)庫(kù)在哪里,這個(gè)數(shù)據(jù)庫(kù)的驅(qū)動(dòng)程序是什么,要指定這兩點(diǎn)有兩種方法:第一是在服務(wù)器端手動(dòng)創(chuàng)建數(shù)據(jù)庫(kù)源名、指定數(shù)據(jù)庫(kù)路徑、指定數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序,這個(gè)方法是通過(guò)服務(wù)器端的控制面版中的 ODBC 來(lái)設(shè)置的。她的優(yōu)點(diǎn)是可以限定數(shù)據(jù)庫(kù)的訪問(wèn)權(quán)限,增加數(shù)據(jù)庫(kù)的安全性,缺點(diǎn)是數(shù)據(jù)庫(kù)不易移植。
  再有一種方法是使用 ASP 來(lái)指定數(shù)據(jù)庫(kù)路徑及數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序。不必手動(dòng)對(duì)創(chuàng)建數(shù)據(jù)庫(kù)源。在此例中,我們用的是第二種方法。server.mappath("chat.mdb")指定數(shù)據(jù)庫(kù)路徑,DRIVER={Microsoft Access Driver (*.mdb)};指定數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序,此例中我們使用的是MS ACCESS 數(shù)據(jù)庫(kù)。

  SELECT是 SQL 查詢命令。sql="SELECT * FROM 在線用戶表 WHERE 姓名=" & Request("name") & "" 表示查詢 數(shù)據(jù)庫(kù)chat.mdb中的 在線用戶表 中所有姓名等于Request("name")的人,Request("name")是讀取表單中名為 NAME 的數(shù)據(jù)。

  Bof 是文件開(kāi)頭,Eof是文件結(jié)尾。If Rs.Bof OR Rs.Eof Then...語(yǔ)句往往用于判斷數(shù)據(jù)庫(kù)中是否存在符合條件的記錄,如果為真則記錄不存在,如果為假則記錄存在。
  INSERT INTO是SQL中的插入命令,往往用于插入一條記錄。

  上面此段程序,整體的意思就是:查詢數(shù)據(jù)庫(kù)在線用戶表中是否存在用戶Request("name"),如果不存在這個(gè)用戶則把這個(gè)用戶添加到在線用戶表中。

  3、<meta http-equiv="refresh" content="4">
   這是一條最簡(jiǎn)單的頁(yè)面自動(dòng)刷新腳本,她是HTML腳本,而不是ASP腳本。很簡(jiǎn)單吧,其意思是每4秒鐘刷新一次,但在使用過(guò)程中,你會(huì)發(fā)現(xiàn)會(huì)出現(xiàn)有不少問(wèn)題出現(xiàn)。

發(fā)表評(píng)論(共0條評(píng)論)
請(qǐng)自覺(jué)遵守互聯(lián)網(wǎng)相關(guān)政策法規(guī),評(píng)論內(nèi)容只代表網(wǎng)友觀點(diǎn),發(fā)表審核后顯示!

版權(quán)聲明:

1 本站所有資源(含游戲)均是軟件作者、開(kāi)發(fā)商投稿,任何涉及商業(yè)盈利目的均不得使用,否則產(chǎn)生的一切后果將由您自己承擔(dān)!

2 本站將不對(duì)任何資源負(fù)法律責(zé)任,所有資源請(qǐng)?jiān)谙螺d后24小時(shí)內(nèi)刪除。

3 若有關(guān)在線投稿、無(wú)法下載等問(wèn)題,請(qǐng)與本站客服人員聯(lián)系。

4 如侵犯了您的版權(quán)、商標(biāo)等,請(qǐng)立刻聯(lián)系我們并具體說(shuō)明情況后,本站將盡快處理刪除,聯(lián)系QQ:2499894784

返回頂部