首页 > 开发 > PHP > 正文

PHP设计聊天室步步通(二)

2024-05-04 23:06:11
字体:
来源:转载
供稿:网友

登录

1、页面登陆的基本要素

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

(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

  1. <script LANGUAGE="javascript">  
  2. function b1_submit(){  
  3. chat=window.open('',"howtodo",'Status=no,scrollbars=no,resizable=no');  
  4.  
  5. chat.moveTo(0,0);  
  6. chat.resizeTo(screen.availWidth,screen.availHeight);  
  7. chat.outerWidth=screen.availWidth;  
  8. chat.outerHeight=screen.availHeight;  

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

在线人数

我根据网易聊天室的在线人数的方法,显示当前的在线人数,代码解释如下:

1、登陆时建立在线人名单的数组,放在body后面

  1. <?  
  2. //锁定在线人数文件  
  3. while(file_exists($useronlinelock)){$pppp++;}  
  4. fclose(fopen($useronlinelock,"w"));  
  5.  
  6. //读入在线人名单  
  7. $useronline = file($useronline);  
  8. unlink($useronlinelock);  
  9.  
  10. //建立数组 list  
  11. print("document.writeln("list=new Array(");  
  12. $k=count($useronline);  
  13. if($k>1)  
  14. {  
  15. for($i=0;$i<($k-1);$i++)  
  16. {  
  17. $usercurrent = split($split,$useronline[$i],99);  
  18. // 姓名+,  
  19. print("'$usercurrent[0]',");  
  20. }  
  21. $i=$k-1;  
  22. // 处理最后一个姓名  
  23. $usercurrent = split($split,$useronline[$i],99);  
  24. print("'$usercurrent[0]'");  
  25. }  
  26. // 数组结束  
  27. print(")");n");  
  28. ?> 

2、显示在线人数的js

  1. document.writeln('[在线人数<font color=red>'+count+'</font>]<br>');  
  2. document.writeln("[<a href="Javascript:parent.cs('所有人')">所有人</  
  3. a>]<br>");  
  4. document.writeln("<font class='p9'>");  
  5. var j,name,club;  
  6. for(var i=0;i<list.length;i=i+1)  
  7. {  
  8. if(list[i]!=null){  
  9.  
  10. //显示每个在线人的名字  
  11. document.writeln("<a href="javascript:parent.cs('"+list[i]+"')" titl  
  12. e='"+list[i]+"'"+list[i]+"</a><br>");  
  13. }  
  14. }  
  15. this.r.document.writeln('</font><hr>'); 

3、改变聊天对象

  1. function cs(name)  
  2. {  
  3. if(this.d.document==null)return;  
  4. if(name=='所有人')  
  5. {  
  6. this.d.add('所有人');  
  7. this.d.document.inputform.talkto.value='所有人';  
  8.  
  9. //改变焦点  
  10. this.d.document.inputform.msg.focus();  
  11. return;  
  12. }  
  13. for(var i=0;i<list.length;i=i+1)  
  14. {  
  15. if(list[i]==name)  
  16. {  
  17.  
  18. //更改发送的谈话对象  
  19. this.d.document.inputform.talkto.value=list[i];  
  20. this.d.document.inputform.msg.focus();  
  21. return;  
  22. }  
  23. }  
  24.  
  25. //错误  
  26. alert('此用户已离线或已改了昵称。');  

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表