聊天室实现私聊(一)

2016-01-29 17:54 7 1 收藏

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

【 tulaoshi.com - ASP 】

 


作者:网络之门

  几个要好的网友在聊天室里闲聊的时侯,总会遇上有些话题是不想同一聊天室内别的聊友看见的,那么聊天室支持悄悄话功能将是什分有必要的了,实现悄悄话的方法很多,现在小虎介绍一下利用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文本框提供发言内容。

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

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

  请看看下面的程序片段

(本文来源于图老师网站,更多请访问https://www.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

来源:https://www.tulaoshi.com/n/20160129/1503474.html

延伸阅读
标签: ASP
  使用XML.而无须不断刷新*.ASP. 无刷新实现发言的逐条显示. 使用Application变量存储聊天记录,所以要需要建立一个虚拟目录 服务器端不需要支持XML,只要支持ASP和能建立虚拟目录就可以了. 以下代码在nt4.0+iis4.0上通过.我估计在你的win2000下也差不多吧. 如果有问题,请多多赐教:netnice@chinaok.net ##########index.asp###############...
标签: ASP
  接下来,我们开始对用户登陆与发言实例程序进行分析:chatadd1.asp 1、用户登陆 <%Response.Buffer=true% 指定缓存为真 <body bgcolor="#F8E17A" <%if Request("name")="" then% 判断用户名是否为空,以判断用户是否在聊天界面 <...
标签: ASP
      当我们把上面的程序保存在具有执行权限的服务器目录中,在客户端用浏览器打开时,我们见到了平常聊天室一样的用户登陆界面。我们于是输入用户名及密码,按发送时,我们所输入的资料便会暗中存入用户数据库中。接着便出现了发言筐,我们试着输入一句话,点发言按钮,这时,我们的发言便会带着我们所输入的话,我...
标签: ASP
  合肥 程双明         经 常 在Internet 上 冲 浪 的 网 友 恐 怕 很 少 有 人 没 有 去 过 聊 天 室 胡乱神聊。 你 只 要 稍 微 留 意 一 下 就会 发 现 这 些 聊 天 室 大 多 是 用CGI 程 序 或 者 用JAVA 开 发 的 Applet 维 护 的。 开 发 过 这 类CGI 或Applet ...
标签: ASP
      我们试着在客户端用浏览器打开chatview.asp,我们果然看到自动刷新的页面,不错吧!下面,我们就要考虑如何把发言部分与刷新部分在同一个页面上显示:那需要用到框架。 框架,那是最简单不过的了,直接用Frontpage即可构建。请看如下代码: <frameset rows="*,90" frameborder="0&...

经验教程

96

收藏

20
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部