首页 >> 读书频道 >> 电脑 >> PHP设计聊天室步步通<2>
 
· PHP设计聊天室步步通&
· PHP设计聊天室步步通&
· PHP设计聊天室步步通&
· 用PHP构建一个留言本&
· 用PHP构建一个留言本&
· 实例学习PHP之表单处理
· 实例学习PHP之表单处理
· PHP5中使用Web服务
· PHP中通过Web执行C
· 用PHP与XML联手进行
· 谈网页编程PHP语言的发
· PHP.MVC的模板标签
 
· 电视剧《刁蛮公主》下载和
· 美容养颜手册
· 加油金顺剧情分集介绍完整
· 红楼梦:120回全本[清
· 素质教育在美国
· 全唐诗卷四十六
· 韩剧《布拉格恋人》剧情介
· 夜航船[作者:明·张岱]
· 局外人[作者:韩·可爱淘
· 现场流行病学
· 源氏物语[日本:紫式部]
· 武林寓言故事
 
· (出租)中动商场部分及写
· (出租)中动动漫基地&#
· 喜剧学院
· 《善德女王》剧情介绍
· 魔女18号 剧情
· 丑女无敌剧情介绍
· 魔女幼熙剧情介绍
· 龙游天下剧情介绍
· 震撼世界的七日剧情介绍
· 静静的白桦林剧情介绍
· 心情日记—老公今天我想对
· 旗舰剧情介绍
欢迎来到月影社区!如果您觉得这里不错,请推荐给您的朋友们。月影社区:http://wf66.com/

PHP设计聊天室步步通<2>


查看有无更新版本

关键字:PHP 2006-9-17

 

登录

1、页面登陆的基本要素

你可以在我的竹叶看到登陆的表单,这里提供了最基本的登陆表单项

(1)登陆表单


<form method=POST name=chatform action=chat/login.php?action=enter onSubmit="b1_submit();return true;" target="howtodo">


(a)聊天表单的名字为chatform,我使用action=enter作为进入聊天室的入口,如果没有这个参数,则显示登陆页面.

(b)在表单提交时,先调用b1_submit()建立聊天的窗口

(c)聊天的目标窗口为b1_submit()建立的howtodo窗口

(2)表单项

昵称:<input type=text name=name size=15 maxlength="10">
密码:<input type=password name=pass size=15 maxlength="10">
<input type=submit name=submit value=登陆 style="width:100">
<input type=reset name=reset value=重添 style="width:50">


(a)各表单项一定要设定最大允许长度 maxlength

(3)建立聊天窗口的js


<script LANGUAGE="javascript">
function b1_submit(){
chat=window.open(\'\',"howtodo",\'Status=no,scrollbars=no,resizable=no\');

chat.moveTo(0,0);
chat.resizeTo(screen.availWidth,screen.availHeight);
chat.outerWidth=screen.availWidth;
chat.outerHeight=screen.availHeight;
}

这段代码先打开一个没有状态栏,滚动条,可调整尺寸的howtodo窗口!然后移动到屏幕左上角,然后放大到允许的屏幕大小.

在线人数

我根据网易聊天室的在线人数的方法,显示当前的在线人数,代码解释如下:
1、登陆时建立在线人名单的数组,放在body后面


<?
//锁定在线人数文件
while(file_exists($useronlinelock)){$pppp++;}
fclose(fopen($useronlinelock,"w"));

//读入在线人名单
$useronline = file($useronline);
unlink($useronlinelock);

//建立数组 list
print("document.writeln("list=new Array(");
$k=count($useronline);
if($k>1)
{
for($i=0;$i<($k-1);$i++)
{
$usercurrent = split($split,$useronline[$i],99);
// 姓名+,
print("\'$usercurrent[0]\',");
}
$i=$k-1;
// 处理最后一个姓名
$usercurrent = split($split,$useronline[$i],99);
print("\'$usercurrent[0]\'");
}
// 数组结束
print(")");n");
?>

2、显示在线人数的js


document.writeln(\'[在线人数<font color=red>\'+count+\'</font>]<br>\');
document.writeln("[<a href="javascript:parent.cs(\'所有人\')">所有人</
a>]<br>");
document.writeln("<font class=\'p9\'>");
var j,name,club;
for(var i=0;i<list.length;i=i+1)
{
if(list!=null){

//显示每个在线人的名字
document.writeln("<a href="javascript:parent.cs(\'"+list+"\')" titl
e=\'"+list+"\'>"+list+"</a><br>");
}
}
this.r.document.writeln(\'</font><hr>\');

3、改变聊天对象


function cs(name)
{
if(this.d.document==null)return;
if(name==\'所有人\')
{
this.d.add(\'所有人\');
this.d.document.inputform.talkto.value=\'所有人\';

//改变焦点
this.d.document.inputform.msg.focus();
return;
}
for(var i=0;i<list.length;i=i+1)
{
if(list==name)
{

//更改发送的谈话对象
this.d.document.inputform.talkto.value=list;
this.d.document.inputform.msg.focus();
return;
}
}

//错误
alert(\'此用户已离线或已改了昵称。\');
}

4、删除一个用户


function del(str)
{
for(var i=0;i<list.length;i=i+1)
if(list==str)
{
delete list;
count--;
}

5、增加一个用户


function add(str1,str2)
{
var l=list.length;
for(var i=0;i<list.length;i=i+1)

//如果已经在数组里面则返回
if(list==str1)
return;

//增加一个用户
list[l]=str1;
count++;
}

6、更新聊天人数的方法,定时器的使用


var timerID=null;
var timerRunning=false;

function stop()
{
//停止
if(timerRunning)clearTimeout(timerID);
timerRunning=false;
}
function start()
{
stop();
//调用更新在线人数的程序
write1();
}

function write1()
{
... ... ... ...
//设定更新时间,
timerID=setTimeout("start()",30000);
timerRunning=true;
}

这种方法比较简单的实现了在线人数的显示,当然也可以使用读入在线人文件的方法显示在线人数,不过在改变聊天对象是会比较麻烦.

PHP设计聊天室步步通<2>

[ 1 ]
PHP设计聊天室步步通<2> num

打印本页 关闭

关于我们版权声明本站导航友情连结作品演示 TOP↑