分享
 
 
 

聊天室实现私聊(一)

王朝other·作者佚名  2008-05-21
窄屏简体版  字體: |||超大  

作者:网络之门

几个要好的网友在聊天室里闲聊的时侯,总会遇上有些话题是不想同一聊天室内别的聊友看见的,那么聊天室支持悄悄话功能将是什分有必要的了,实现悄悄话的方法很多,现在小虎介绍一下利用session对象来实现它,用session对象来实现悄悄话,是有优缺点的,因为session对象的应用,其实就是客户端cookies的使用。如果客户端cookies不支持或关闭了,那么程序运行起来就有问题了。那么使用session对象就没好处了吗??非也,至少在编程上大大减少了工作量嘛,试想一下如果需要保存该用户的聊天名字,那么使用session对象就能直接保存他的名字了,如果没有session对象。解决的方法看来就只有在处理发言的FORM里设几个隐含的textbox对象来保存,这样处理起来会比教烦锁,但好处是通用性广,就算浏览器不支持cookies仍然可用。

说到这里,大伙不妨试试网上众多的ASP聊天室,试把浏览器的安全选项(总是接受cookies关了)看看那个聊天室仍然正常地能使用。那个就问题百出来。。呵呵~~不要找小虎的聊天室来试哦....我的聊天室也需要cookies来支持的。不用session对象编程真是烦锁很多。而且大部分浏览器的安全配置的默认值是总是接受cookies。所以也不用太但心,只有少部分的用户是比教特别的。

现在从聊天室的发言开始,到处理发言,显示发言,一步一步地让大家了解一下是如何处理的,最后就加上悄悄话功能

首先,我们的聊天室主要提供如下元素:发言人(你的名字),动作(叫嚷,抱抱...等),对象(这句话是向谁说的呢?),发言内容等四大元素。

其中发言人(你的聊天名字)的名字是保存在发言FORM的user隐藏文本框中,这样每当发言的时侯,在处理发言的says.asp程序里,就可以用request.form("user")来取得聊天名字。而动作则是由下拉框action来提供的,你可以自定义很多的动作类型,以满足不同聊友的需要。而发言对象,也是由下拉框whoto来选定,这些名单是列出当前聊天室内所有用户的名称。如何判断有新用户进聊天室以及退出处理,这里先不说了。因为构造一个完整的聊天室要做的工作还是挺多的。最后由一个says文本框提供发言内容。

有了这几个主要的聊天元素。我们就可以进行发言处理了。

请看看下面的程序片段

'取得说话内容,并过滤其中的脚本语句

usersays=request.form("says")

if instr(usersays,"<script")>0 then

usersays=""

end if

'判断是否有谈话内容,没有的话就不作处理

if len(usersays)<>0 then

session("whoto")=request.form("whoto")

session("action")=request.form("action")

if instr(usersays,chr(39))>0 then

usersays=replace(usersays,chr(39),"\"&chr(39))

end if

if instr(usersays,chr(34))>0 then

usersays=replace(usersays,chr(34),"\"&chr(34))

end if

application.lock

'定义一个交谈缓冲区,后面将给大家仔细分析一下

dim chats(20)

for n=1 to 20

chats(n)=application("chats")(n)

next

username=request.Form("user")

usertime=Time

usertime="("&right(usertime,8)&")"

user_whoto=request.Form("whoto")

user_action=request.Form("action")

if application("counter")>19 then

application("counter")=0

end if

'不是耳语就加一

if request.form("action")<>"耳语" then

application("counter")=application("zj_1counter")+1

counter=application("zj_1counter")

'用户的动作处理

select case request.FORM("action")

case "说话"

if request.FORM("whoto")="ALL" then

chats(counter)="<font color=blue>"&usertime&"</font>

<font color=black>"&username&"</font> :<font

color=#0000aa> "&usersays&"</font><BR><BR>"

else

chats(counter)="<font color=blue>"&usertime&"</font>

<font color=black>"&username&"</font> <I>与<font

color=#00bb00>&nbsp;"&request.FORM("whoto")&"

</font>说</I>:<font color=#0000aa>

"&usersays&"</font><BR><BR>"

end if

case "叫嚷"

chats(counter)="<font color=blue>"&usertime&"</font>

<font color=black>"&username&"</font> <I>冲<font

color=#00bb00>&nbsp;"&request.FORM("whoto")&"

</font>大叫</I>:<B><font color=#0000aa>

"&usersays&"</font></B><BR><BR>"

case "亲亲"

chats(counter)="<font color=blue>"&usertime&"</font>

<font color=black>"&username&"</font> <I>亲了亲<font

color=#00bb00>&nbsp;"&request.FORM("whoto")&"

</font>的脸颊</I>:<font color=#0000aa>

"&usersays&"</font><BR><BR>"

case "拥抱"

chats(counter)="<font color=blue>"&usertime&"</font>

<font color=black>"&username&"</font> <I>轻轻的抱着<font

color=#00bb00>&nbsp;"&request.FORM("whoto")&"

</font></I>:<font color=#0000aa>

"&usersays&"</font><BR><BR>"

case "暴怒"

chats(counter)="<font color=blue>"&usertime&"</font>

<font color=black>"&username&"</font> <I>朝<font

color=#00bb00>&nbsp;"&request.FORM("whoto")&"

</font>横眉竖目道</I>:<font color=#0000aa>

"&usersays&"</font><BR><BR>"

case "轻推"

chats(counter)="<font color=blue>"&usertime&"</font>

<font color=black>"&username&"</font> <I>轻轻地推了推<font

color=#00bb00>&nbsp;"&request.FORM("whoto")&"

</font>的胳膊</I>:<font color=#0000aa>

"&usersays&"</font><BR><BR>"

case "傻笑"

chats(counter)="<font color=blue>"&usertime&"</font>

<font color=black>"&username&"</font> <I>傻兮兮的朝<font

color=#00bb00>&nbsp;"&request.FORM("whoto")&"

</font>笑笑</I>:<font color=#0000aa>

"&usersays&"</font><BR><BR>"

case "拳打"

chats(counter)="<font color=blue>"&usertime&"</font>

<font color=black>"&username&"</font> <I>对准<font

color=#00bb00>&nbsp;"&request.FORM("whoto")&"

</font>就是一拳</I>:<font color=#0000aa>

"&usersays&"</font><BR><BR>"

case "脚踢"

chats(counter)="<font color=blue>"&usertime&"</font>

<font color=black>"&username&"</font> <I>凌空一腿踢在<font

color=#00bb00>&nbsp;"&request.FORM("whoto")&"

</font>脑袋上</I>:<font color=#0000aa>

"&usersays&"</font><BR><BR>"

case "告戒"

chats(counter)="<font color=blue>"&usertime&"</font>

<font color=black>"&username&"</font> <I>拉着<font

color=#00bb00>&nbsp;"&request.FORM("whoto")&"

</font>手语气心长地说</I>:<font color=#0000aa>

"&usersays&"</font><BR><BR>"

case "耳光"

chats(counter)="<font color=blue>"&usertime&"</font>

<font color=black>"&username&"</font> <I>狠狠地掴了<font

color=#00bb00>&nbsp;"&request.FORM("whoto")&"

</font>几个耳光</I>:<font color=#0000aa>

"&usersays&"</font><BR><BR>"

case "鞠躬"

chats(counter)="<font color=blue>"&usertime&"</font>

<font color=black>"&username&"</font> <I>毕恭毕敬地向<font

color=#00bb00>&nbsp;"&request.FORM("whoto")&"

</font>弯腰鞠躬</I>:<font color=#0000aa>

"&usersays&"</font><BR><BR>"

case "歉意"

chats(counter)="<font color=blue>"&usertime&"</font>

<font color=black>"&username&"</font> <I>感到十二分的歉意,低声对<font

color=#00bb00>&nbsp;"&request.FORM("whoto")&"

</font>说</I>:<font color=#0000aa>

"&usersays&"</font><BR><BR>"

case "惊讶"

chats(counter)="<font color=blue>"&usertime&"</font>

<font color=black>"&username&"</font> <I>惊讶的对<font

color=#00bb00>&nbsp;"&request.FORM("whoto")&"

</font>吐了吐舌头</I>:<font color=#0000aa>

"&usersays&"</font><BR><BR>"

case "哈欠"

chats(counter)="<font color=blue>"&usertime&"</font>

<font color=black>"&username&"</font> <I>对<font

color=#00bb00>&nbsp;"&request.FORM("whoto")&"

</font>张大嘴巴,打了个哈欠</I>:<font color=#0000aa>

"&usersays&"</font><BR><BR>"

case "微笑"

chats(counter)="<font color=blue>"&usertime&"</font>

<font color=black>"&username&"</font> <I>对<font

color=#00bb00>&nbsp;"&request.FORM("whoto")&"

</font>微微一笑</I>:<font color=#0000aa>

"&usersays&"</font><BR><BR>"

case "握手"

chats(counter)="<font color=blue>"&usertime&"</font>

<font color=black>"&username&"</font> <I>紧紧的握住<font

color=#00bb00>&nbsp;"&request.FORM("whoto")&"

</font>的手</I>:<font color=#0000aa>

"&usersays&"</font><BR><BR>"

case "耸肩"

chats(counter)="<font color=blue>"&usertime&"</font>

<font color=black>"&username&"</font> <I>对着<font

color=#00bb00>&nbsp;"&request.FORM("whoto")&"

</font>耸耸双肩</I>:<font color=#0000aa>

"&usersays&"</font><BR><BR>"

case "安慰"

chats(counter)="<font color=blue>"&usertime&"</font>

<font color=black>"&username&"</font> <I>拍拍<font

color=#00bb00>&nbsp;"&request.FORM("whoto")&"

</font>的肩膀,双眼关切的说</I>:<font color=#0000aa>

"&usersays&"</font><BR><BR>"

case "生气"

chats(counter)="<font color=blue>"&usertime&"</font>

<font color=black>"&username&"</font> <I>气鼓鼓的嘟嘴对<font

color=#00bb00>&nbsp;"&request.FORM("whoto")&"

</font>道</I>:<font color=#0000aa>

"&usersays&"</font><BR><BR>"

case "大哭"

chats(counter)="<font color=blue>"&usertime&"</font>

<font color=black>"&username&"</font> <I>忍不住对着<font

color=#00bb00>&nbsp;"&request.FORM("whoto")&"

</font>放声大哭</I>:<font color=#0000aa>

"&usersays&"</font><BR><BR>"

case "抽泣"

chats(counter)="<font color=blue>"&usertime&"</font>

<font color=black>"&username&"</font> <I>双手捂着脸,对着<font

color=#00bb00>&nbsp;"&request.FORM("whoto")&"

</font>呜呜咽咽的</I>:<font color=#0000aa>

"&usersays&"</font><BR><BR>"

case "承诺"

chats(counter)="<font color=blue>"&usertime&"</font>

<font color=black>"&username&"</font> <I>对着<font

color=#00bb00>&nbsp;"&request.FORM("whoto")&"

</font>把胸脯拍得噼啪响</I>:<font color=#0000aa>

"&usersays&"</font><BR><BR>"

case "不舍"

chats(counter)="<font color=blue>"&usertime&"</font>

<font color=black>"&username&"</font> <I>依依不舍地拉着<font

color=#00bb00>&nbsp;"&request.FORM("whoto")&"

</font>的衣角</I>:<font color=#0000aa>

"&usersays&"</font><BR><BR>"

case "深情"

chats(counter)="<font color=blue>"&usertime&"</font>

<font color=black>"&username&"</font> <I>用深情的眼神,痴痴地看着<font

color=#00bb00>&nbsp;"&request.FORM("whoto")&"

</font></I>:<font color=#0000aa>

"&usersays&"</font><BR><BR>"

case "迷惑"

chats(counter)="<font color=blue>"&usertime&"</font>

<font color=black>"&username&"</font> <I>抓抓头皮看着<font

color=#00bb00>&nbsp;"&request.FORM("whoto")&"

</font>露出迷惑的神情</I>:<font color=#0000aa>

"&usersays&"</font><BR><BR>"

case "不解"

chats(counter)="<font color=blue>"&usertime&"</font>

<font color=black>"&username&"</font> <I>用不可思意的眼神看着<font

color=#00bb00>&nbsp;"&request.FORM("whoto")&"

</font></I>:<font color=#0000aa>

"&usersays&"</font><BR><BR>"

case "幸灾"

chats(counter)="<font color=blue>"&usertime&"</font>

<font color=black>"&username&"</font> <I>幸灾乐祸地对<font

color=#00bb00>&nbsp;"&request.FORM("whoto")&"

</font>说</I>:<font color=#0000aa>

"&usersays&"</font><BR><BR>"

case "大笑"

chats(counter)="<font color=blue>"&usertime&"</font>

<font color=black>"&username&"</font> <I>对着<font

color=#00bb00>&nbsp;"&request.FORM("whoto")&"

</font>捧腹大笑</I>:<font color=#0000aa>

"&usersays&"</font><BR><BR>"

case "皱眉"

chats(counter)="<font color=blue>"&usertime&"</font>

<font color=black>"&username&"</font> <I>皱着眉头对<font

color=#00bb00>&nbsp;"&request.FORM("whoto")&"

</font></I>:<font color=#0000aa>

"&usersays&"</font><BR><BR>"

case "委屈"

chats(counter)="<font color=blue>"&usertime&"</font>

<font color=black>"&username&"</font> <I>很委屈地看着<font

color=#00bb00>&nbsp;"&request.FORM("whoto")&"

</font>眼泪哗啦啦地往下流</I>:<font color=#0000aa>

"&usersays&"</font><BR><BR>"

case "高兴"

chats(counter)="<font color=blue>"&usertime&"</font>

<font color=black>"&username&"</font> <I>兴高采烈地对<font

color=#00bb00>&nbsp;"&request.FORM("whoto")&"

</font>说</I>:<font color=#0000aa>

"&usersays&"</font><BR><BR>"

case "沮丧"

chats(counter)="<font color=blue>"&usertime&"</font>

<font color=black>"&username&"</font> <I>满脸沮丧地对<font

color=#00bb00>&nbsp;"&request.FORM("whoto")&"

</font>说</I>:<font color=#0000aa>

"&usersays&"</font><BR><BR>"

case "失望"

chats(counter)="<font color=blue>"&usertime&"</font>

<font color=black>"&username&"</font> <I>垂头丧气地对<font

color=#00bb00>&nbsp;"&request.FORM("whoto")&"

</font>说</I>:<font color=#0000aa>

"&usersays&"</font><BR><BR>"

case "神经"

chats(counter)="<font color=blue>"&usertime&"</font>

<font color=black>"&username&"</font> <I>神经兮兮地对<font

color=#00bb00>&nbsp;"&request.FORM("whoto")&"

</font>说</I>:<font color=#0000aa>

"&usersays&"</font><BR><BR>"

case "神秘"

chats(counter)="<font color=blue>"&usertime&"</font>

<font color=black>"&username&"</font> <I>非常神秘地对<font

color=#00bb00>&nbsp;"&request.FORM("whoto")&"

</font>说</I>:<font color=#0000aa>

"&usersays&"</font><BR><BR>"

case "撒娇"

chats(counter)="<font color=blue>"&usertime&"</font>

<font color=black>"&username&"</font> <I>拉着<font

color=#00bb00>&nbsp;"&request.FORM("whoto")&"

</font>手撒娇</I>:<font color=#0000aa>

"&usersays&"</font><BR><BR>"

case "鬼脸"

chats(counter)="<font color=blue>"&usertime&"</font>

<font color=black>"&username&"</font> <I>对着<font

color=#00bb00>&nbsp;"&request.FORM("whoto")&"

</font>做了个鬼脸</I>:<font color=#0000aa>

"&usersays&"</font><BR><BR>"

case "无奈"

chats(counter)="<font color=blue>"&usertime&"</font>

<font color=black>"&username&"</font> <I>对着<font

color=#00bb00>&nbsp;"&request.FORM("whoto")&"

</font>很无奈地</I>:<font color=#0000aa>

"&usersays&"</font><BR><BR>"

end select

'是耳语

else

'耳语处理

application("chat")="<font

color=blue>"&usertime&"</font> <font

color=black>"&username&"</font> <I>悄悄地对<font

color=#00bb00>&nbsp;"&request.FORM("whoto")&"

</font>耳语</I>:<font color=#0000aa>

"&usersays&"</font><BR><BR>"

'对谁说

application("chatto")=request.FORM("whoto")

'说话的人

application("owner")=username

session("chat")="true"

end if

'谈话全局化

application("chats")=chats

application.unlock

end if

上面的程序是把用户的发言和动作以及说话对象生成html语句并保存起来。用以后面的在聊天室中显示出来,其中请大家注意一下耳语是保存在application("chat")这个全局应用程序对象中的。好了,下节先为大家详细分析一下说话的内容是如何处理。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有