聊天室建設詳解三

來源:互聯網
上載者:User
接下來,我們開始對使用者登陸與發言執行個體程式進行分析:chatadd1.asp

1、使用者登陸

<%Response.Buffer=true%>                指定緩衝為真
<body bgcolor="#F8E17A">
<%if Request("name")="" then%>             判斷使用者名稱是否為空白,以判斷使用者是否在聊天介面
<%addr=Request("REMOTE_ADDR")%>             獲得使用者IP
<form method="POST" action="chatadd1.asp">
<p><input type="hidden" name="IP" value="<%=addr%>"><p> 使用者登陸表單
<p>請輸入匿名:<input type="text" name="name" size="15">
密碼:<input type="password" name="pass" size="15">

性別:<select name="D4" size="1" style="color: rgb(0,0,128)">
<option value="先生">先生</option>
<option value="女士">女士</option>
</select>

<input type="submit" value="發送" name="B1">
<input type="reset" value="複原" name="B2"></p>
</form>
<%=Request("a")%>                    返回的錯誤變數


<%else%>                        使用者確在聊天介面中

<%B1=Request("B1")
If B1="發送" Then                    開始判斷使用者名稱與密碼        

If Request("name")="" or Request("pass")="" Then    判斷使用者名稱與密碼是否為空白
a="名字或密碼不可為空!<br>"               如果為空白,則定義此錯誤變數
Response.Redirect "chatadd1.asp?a=" & a & " "      錯誤一旦出現立即返回登陸介面
end if

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("IP") &_               把該使用者寫入使用者資料庫
"', '"& Request("name") &_
"', '"& Request("D4") &_
"', '"& Request("pass") & "'"
into_db = "INSERT INTO 使用者表 ( IP, 姓名, 性別, 密碼 ) VALUES(" &_  寫入使用者資料庫
sz & ")"
conn.Execute(into_db)

Else                           如果資料庫中已經存在這個使用者,則
If Request("pass")<>Rs("密碼") Then           查看他的密碼是否正確。
a="這個名字已經被別人使用,或者你輸入的口令不對!<br>"   如果密碼錯誤則定義錯誤資訊
Response.Redirect "chatadd1.asp?a=" & a & " "      立即返回登陸介面並返回此錯誤資訊
end if
end if


time1=now                   如果登陸表單沒有任何錯誤,則開始成為線上使用者並進入聊天
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)

name=Request("name")
sex=Request("D4")
ming="管理員宣布"                     管理員開始宣布歡迎這位(先生/女士)的光臨
sz="<font size=5 color=#FF0000><strong>" & "熱烈歡迎" & name & sex & "的光臨"
into_db2 = "INSERT INTO 聊天表 ( 姓名,說話 ) VALUES('" & ming & "','" & sz & "')"
conn.Execute(into_db2)

end if

end if%>


2、使用者發言
                              使用者開始真正發言             
<%addr=Request("REMOTE_ADDR")%>              使用者IP
<form method="POST" action="chatadd1.asp">         使用者發言表單
<p><input type="hidden" name="ip" value="<%=addr%>"><p>
<p><input type="hidden" name="name" value="<%=Request("name")%>"><p>
<p><input type="text" name="word" size="70"><input type="submit" value="發言" name="B3"><input
type="reset" value="複原" name="B4">

<p>顏色:<select name="D1" size="1" style="color: rgb(0,0,128)">
<option value=" ">黑色</option>              顏色選擇
<option  value="#ff0000">紅色</option>
<option  value="#008000">綠色</option>
<option  value="#0000FF">藍色</option>
<option  value="#800080">紫色</option>
<option  value="#008080">青色</option>
<option  value="#800000">深紅色</option>
<option  value="#00ff00">草綠色</option>
<option  value="#00ffff">海藍色</option>
</select>

<%
Set Conn=Server.CreateObject("ADODB.Connection")     查詢更新線上使用者
Connstr="DBQ="+server.mappath("chat.mdb")+";DRIVER={Microsoft Access Driver (*.mdb)};"
Conn.Open connstr
sql="SELECT * FROM 線上使用者表 "
Set Rs=conn.Execute(sql)
%>

對象:<select name="D2" size="1" style="color: rgb(0,0,128)"> 從線上使用者中選擇說話對象
<option value="大家">大家</option>
<%Do While not Rs.Eof                   線上使用者表單
if Rs("姓名")=Request("D2") then
s="selected"                        這裡的條件定義s是為了保持說話對象的不變性,
else                            使使用者不必每次都選擇說話對象,你也可以對顏色
s=""                            與表情如法炮製。
end if%>
<option <%=s%> value="<%=Rs("姓名")%>"><%=Rs("姓名")%>(<%=Rs("性別")%>)</option>
<%
Rs.MoveNext
Loop
%>
</select>


表情:<select name="D3" size="1" style="color: rgb(0,0,128)"> 表情選擇
<option  value="微笑著對">微笑</option>
<option  value="大笑著對">大笑</option>
<option  value="哭泣著對">哭泣</option>
<option  value="害羞著對">害羞</option>
<option  value="紅著臉對">臉紅</option>
<option  value="憤怒的對">憤怒</option>
<option  value="陰沉的對">陰沉</option>
<option  value="奸笑著對">奸笑</option>
</select>
    <input type="submit" value="離開聊天室" name="B5">
   <a href="admin.asp">管理員入口</a>
</form>


<%
B3=Request("B3")
If B3="發言" Then                      準備把使用者發言寫到聊天表中
Set Conn=Server.CreateObject("ADODB.Connection")
Connstr="DBQ="+server.mappath("chat.mdb")+";DRIVER={Microsoft Access Driver (*.mdb)};"
Conn.Open connstr
%>

<%
word=Request("word")
if Request("word")="" then            如果什麼都沒寫就發言,則預設發言為兩眼開開,正在發獃
word="兩眼開開,正在發獃....."
end if
%>

<%
sz = "'" & Request("ip") &_                  把使用者發言寫到聊天表中
"', '"& Request("name") &_
"', '"& Request("D1") &_
"', '"& Request("D3") &_
"', '"& Request("D2") &_
"', '"& word & "'"
into_db = "INSERT INTO 聊天表 ( ip, 姓名, 顏色, 表情, 說話對象, 說話 ) VALUES(" &_
sz & ")"
conn.Execute(into_db)
conn.Close

end if


3、使用者離開

B5=Request("B5")
If B5="離開聊天室" Then                   如果使用者選擇離開聊天室則
Set Conn=Server.CreateObject("ADODB.Connection")
Connstr="DBQ="+server.mappath("chat.mdb")+";DRIVER={Microsoft Access Driver (*.mdb)};"
Conn.Open connstr                        從線上名單中把他刪除
sql5="delete * FROM 線上使用者表 WHERE 姓名='" & Request("name") & "'"
conn.Execute(sql5)

name1=Request("name")
sex1=Request("D4")
ming1="管理員宣布"                      管理員宣布此使用者離開
sz1="<font size=5 color=#FF0000><strong>" & name1 & sex1 & "有事先離開,歡迎再來"
into_db2 = "INSERT INTO 聊天表 ( 姓名,說話 ) VALUES('" & ming1 & "','" & sz1 & "')"
conn.Execute(into_db2)
conn.close
Response.Redirect "chat.asp"
end if

end if
%>

把此檔案存為chatadd1.asp


相關文章

Beyond APAC's No.1 Cloud

19.6% IaaS Market Share in Asia Pacific - Gartner IT Service report, 2018

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。