国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

聊天室建設詳解一

2019-11-18 22:38:12
字體:
來源:轉載
供稿:網友
    一位精通程式設計的大師,在每開發一個項目的時候,往往要經過非常嚴密的計劃,十分嚴格的求證,否則,辛辛苦苦開發的程序一旦中途發現問題,那往往都是前功盡棄,從頭開始。特別是開發一個大型項目,那計劃與求證過程比編寫程序過程更為重要。

  然而,如果我們是一位程式設計的初學者,要讓我們開發一個例程,我們的做法又往往與上面的做法相反。往往從最簡單的實例開始,實現最初步的功能,然后在簡單的基礎上不斷對程序加以改進、完善,使其功能不斷增加,發展,強大。

  我自己有一個習慣:在設計一些中小程式時,我喜歡花更大的精力去探究、去發現它的難點部分,挖掘它的核心部分,然后從其核心開始進行實驗性編程。一般一個程式往往有幾個難點與核心部分。一旦這些核心部分完成實驗,我們便可以胸有成竹的去對整個程式進行規劃,如此便可較迅速的完成設計。

  我們要建設一個聊天室,首先,這個聊天室的整體概況要在我們腦海中要有一個初步的影像,在眾多的公共聊天室中,其核心無非是:
  1、聊天者把語句寫入文本或數據庫
  2、瀏覽器不斷的對文本或數據庫進行刷新、讀取;
  3、實時更新在線的客戶;
  4、管理員對聊天者進行踢或ip禁止操作。

  若是一個初學程式設計,你能夠實現寫數據庫、自動刷新、獲取客戶IP的實驗,那么,實際上建設聊天室也就完成了一大半。首先,要完成這幾個實驗,我們至少要熟悉一些asp腳本及一些SQL命令。

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

   這是一段獲取客戶IP的腳本,如果你看過《ASP教程》,你應該知道REMOTE_ADDR是
   一個服務器環境變量,返回發出請求的遠程主機(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 在線用戶表 ( 姓名, 性別, 登陸時間 ) VALUES(" &_
    sz & ")"
    conn.Execute(into_db)
   end if
   %>

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

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

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

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

  3、<meta http-equiv="refresh" content="4">
   這是一條最簡單的頁面自動刷新腳本,她是HTML腳本,而不是ASP腳本。很簡單吧,其意思是每4秒鐘刷新一次,但在使用過程中,你會發現會出現有不少問題出現。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 衡水市| 靖江市| 林周县| 土默特左旗| 青铜峡市| 申扎县| 库车县| 镇安县| 玛沁县| 嘉兴市| 勐海县| 苗栗县| 大邑县| 岳池县| 土默特右旗| 梁河县| 驻马店市| 屏山县| 万全县| 茌平县| 赤水市| 澄城县| 静海县| 凤阳县| 扶风县| 荔浦县| 孟村| 林芝县| 江口县| 苏尼特右旗| 忻城县| 洪雅县| 西林县| 沙湾县| 广安市| 乐平市| 昌乐县| 吕梁市| 张北县| 元朗区| 喀什市|