聊天室实现私聊(一)

4ykn藏獒

4ykn藏獒

2016-01-29 17:54

聊天室实现私聊(一),聊天室实现私聊(一)
 


作者:网络之门

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

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

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

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

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/asp/)

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

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/asp/)

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

  请看看下面的程序片段

 

'取得说话内容,并过滤其中的脚本语句
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&g

展开更多 50%)
分享

猜你喜欢

聊天室实现私聊(一)

ASP
聊天室实现私聊(一)

聊天室实现私聊(二)

ASP
聊天室实现私聊(二)

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

聊天室实现私聊(四)

ASP
聊天室实现私聊(四)

聊天室实现私聊(三)

ASP
聊天室实现私聊(三)

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

聊天室建设详解一

ASP
聊天室建设详解一

基于PHP的聊天室(一)

PHP
基于PHP的聊天室(一)

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

让你受益终身的10个Word实用技巧

让你受益终身的10个Word实用技巧

Linux指令篇:文件传输--uucico

Linux指令篇:文件传输--uucico
下拉加载更多内容 ↓