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

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

文件大小:

軟件介紹

接下來,我們開始對用戶登陸與發(fā)言實例程序進(jìn)行分析: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="發(fā)送" name="B1">
<input type="reset" value="復(fù)原" name="B2"></p>
</form>
<%=Request("a")%>                    返回的錯誤變量


<%else%>                        用戶確在聊天界面中

<%B1=Request("B1")
If B1="發(fā)送" Then                    開始判斷用戶名與密碼        

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

Set Conn=Server.CreateObject("ADODB.Connection")    如果客戶輸入非空,則開始查詢數(shù)據(jù)庫
Connstr="DBQ="+server.mappath("chat.mdb")+";DRIVER={Microsoft access Driver (*.mdb)};"
Conn.Open connstr
sql="SELECT * FROM 用戶表 WHERE 姓名=" & Request("name") & "" 查看數(shù)據(jù)庫中是否存在這個用戶
Set Rs=conn.Execute(sql)
If Rs.Bof OR Rs.Eof Then                 如果數(shù)據(jù)庫中還沒有這個用戶,則
sz = "" & Request("IP") &_               把該用戶寫入用戶數(shù)據(jù)庫
", "& Request("name") &_
", "& Request("D4") &_
", "& Request("pass") & ""
into_db = "INSERT INTO 用戶表 ( IP, 姓名, 性別, 密碼 ) VALUES(" &_  寫入用戶數(shù)據(jù)庫
sz & ")"
conn.Execute(into_db)

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


time1=now                   如果登陸表單沒有任何錯誤,則開始成為在線用戶并進(jìn)入聊天
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="管理員宣布"                     管理員開始宣布?xì)g迎這位(先生/女士)的光臨
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、用戶發(fā)言
                              用戶開始真正發(fā)言             
<%addr=Request("REMOTE_ADDR")%>              用戶IP
<form method="POST" action="chatadd1.asp">         用戶發(fā)言表單
<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="發(fā)言" name="B3"><input
type="reset" value="復(fù)原" 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">藍(lán)色</option>
<option  value="#800080">紫色</option>
<option  value="#008080">青色</option>
<option  value="#800000">深紅色</option>
<option  value="#00ff00">草綠色</option>
<option  value="#00ffff">海藍(lán)色</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>
&nbsp;&nbsp;&nbsp;&nbsp;<input type="submit" value="離開聊天室" name="B5">
&nbsp;&nbsp;&nbsp;<a href="admin.asp">管理員入口</a>
</form>


<%
B3=Request("B3")
If B3="發(fā)言" Then                      準(zhǔn)備把用戶發(fā)言寫到聊天表中
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            如果什么都沒寫就發(fā)言,則默認(rèn)發(fā)言為兩眼開開,正在發(fā)呆
word="兩眼開開,正在發(fā)呆....."
end if
%>

<%
sz = "" & Request("ip") &_                  把用戶發(fā)言寫到聊天表中
", "& 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

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

版權(quán)聲明:

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

2 本站將不對任何資源負(fù)法律責(zé)任,所有資源請在下載后24小時內(nèi)刪除。

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

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

返回頂部