国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > PHP > 正文

PHP設計聊天室步步通(三)

2024-05-04 23:06:11
字體:
來源:轉載
供稿:網友

4、刪除一個用戶

  1. function del(str)  
  2. {  
  3. for(var i=0;i<list.length;i=i+1)  
  4. if(list[i]==str)  
  5. {  
  6. delete list[i];  
  7. count--;  
  8. }  

5、增加一個用戶

  1. function add(str1,str2)  
  2. {  
  3. var l=list.length;  
  4. for(var i=0;i<list.length;i=i+1)  
  5.  
  6. //如果已經在數組里面則返回  
  7. if(list[i]==str1)  
  8. return;  
  9.  
  10. //增加一個用戶  
  11. list[l]=str1;  
  12. count++;  

6、更新聊天人數的方法,定時器的使用

  1. var timerID=null;  
  2. var timerRunning=false;  
  3.  
  4. function stop()  
  5. {  
  6. //停止  
  7. if(timerRunning)clearTimeout(timerID);  
  8. timerRunning=false;  
  9. }  
  10. function start()  
  11. {  
  12. stop();  
  13. //調用更新在線人數的程序  
  14. write1();  
  15. }  
  16.  
  17. function write1()  
  18. {  
  19. ... ... ... ...  
  20. //設定更新時間,  
  21. timerID=setTimeout("start()",30000);  
  22. timerRunning=true;  

這種方法比較簡單的實現了在線人數的顯示,當然也可以使用讀入在線人文件的方法顯示在線人數,不過在改變聊天對象是會比較麻煩.

顯示:現在的www聊天室基本全部采用框架方式,可以用frame也可以用iframe看個人喜歡了,我的采用frame的傳統方式

  1. print("<frameset rows="*,110,0,0,0" border=0>n");  
  2. print("<frameset cols="660,118" rows="*">n");  
  3.  
  4. //主顯示屏幕,負責顯示聊天內容  
  5. print("<frame name=u src=about:blank frameborder="NO" noresize>n");  
  6.  
  7.  
  8. //在線人數屏幕  
  9. print("<frame name=r src="about:blank" frameborder="NO">");  
  10. print("</frameset>n");  
  11.  
  12. //發送信息的屏幕,信息指揮中心,所有指令都要由這里發出  
  13. print("<frame name=d src=send.php?name=$name&&pass=$pass scrolling='no  
  14. ' frameborder="NO" noresize>n");  
  15.  
  16. //被動更新屏幕,處理發送的信息  
  17. print("<frame src="about:blank" name="bl">n");  
  18.  
  19. /主動更新屏幕,顯示自己和其他聊友的聊天信息  
  20. print("<frame src="about:blank" name="flush">n");  
  21.  
  22. //檢測是否在線的屏幕,對于異常離開,如死機,掉線等的處理  
  23. print("<frame src="about:blank" name="check">n");  
  24. print("</frameset>n"); 

因為各個頁面之間的程序有聯系,所以顯示順序很重要,可以看到,我這里只有發送頁面不是about:blank,其他頁面的顯示都要先通過發送頁面的調用才能開始.

指揮中心

這里是聊天室的指揮中心,所有的指令都要在這里發出

1、下面是基本的發送表單代碼

  1. <form name=inputform action='messagesend.php' target='bl' onsubmit='return(checksay());' method=POST>  
  2.  
  3. <?  
  4. //下面的2個參數用于驗證信息的正確性  
  5. print("<input type='hidden' name='name' value='$name'>n");  
  6. print("<input type='hidden' name='pass' value='$pass'>n");  
  7. ?>  
  8. //聊天對象,注意加上 readonly 屬性  
  9. <input type="text" name="talkto" size="10" maxlength="20" readonly value="所有人">  
  10. //上次聊天的發送內容  
  11. <input type='hidden' name='message' value=''>  
  12. //發送的表單文本框  
  13. <input type="text" name="msg" maxlength="120" size="34">  
  14. <input type="submit" name="Submit" value="發送">  
  15. </form> 

2 檢查發送內容的js

  1. var dx ='';  
  2. function checksay( )  
  3. {  
  4.  
  5. //不允許發送空的發言  
  6. if(document.inputform.msg.value=='')  
  7. {  
  8. document.inputform.msg.focus();  
  9. return false;  
  10. }  
  11.  
  12. //不允許重復發言,內容相同,對象相同  
  13. if ((document.inputform.msg.value==document.inputform.message.value)  
  14. &&(document.inputform.talkto.value==dx))  
  15. {  
  16. alert('發言不能重復');  
  17. document.inputform.msg.focus();  
  18. return false;  
  19. }  
  20.  
  21. //兩次發言內容的間隔不能小于1秒,或者發言字數大于間隔*3  
  22. t2=(new Date()).getTime()/1000;  
  23. if(((t2-t1)<1)||((t2-t1)*3<document.inputform.msg.value.length))  
  24. {  
  25. document.inputform.msg.focus();  
  26. return false;  
  27. }  
  28.  
  29. //更新時間  
  30. t1=t2;  
  31.  
  32. document.inputform.showsign.value=1;  
  33.  
  34. //保存上次發言內容  
  35. document.inputform.message.value =document.inputform.msg.value;  
  36.  
  37. //清空發言內容  
  38. document.inputform.msg.value ='';  
  39.  
  40. //保存發言對象  
  41. dx=document.inputform.talkto.value;  
  42.  
  43. //定位焦點  
  44. document.inputform.msg.focus();  
  45.  
  46. //返回  
  47. return(true);  

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 绥德县| 河西区| 阿拉善左旗| 古交市| 博湖县| 固镇县| 呼伦贝尔市| 北辰区| 平乐县| 平塘县| 贞丰县| 舒兰市| 沈阳市| 淮北市| 红桥区| 山东省| 泰宁县| 固安县| 乌鲁木齐县| 乃东县| 临清市| 驻马店市| 兴化市| 青神县| 衡南县| 云安县| 盐津县| 工布江达县| 淮北市| 平谷区| 华宁县| 治县。| 卢湾区| 慈溪市| 泽普县| 高唐县| 色达县| 酉阳| 广宁县| 毕节市| 拉萨市|