|
PHP聊天室源代码 ~ admin
// 显示信息部份 m.php<br>
<HTML><br> <HEAD><br> <TITLE>Push Chat Room</TITLE><br> <style type="text/css"><br> <!--<br> a.font1 <br> a.font1:hover <br> --><br> </style><br> </HEAD><br> <BODY bgcolor="#FFFFFF"><br> <p><br> <SCRIPT LANGUAGE="JavaScript"><br> <!--<br> function sayto(s) {<br> this.scroll(0,65000);<br> document.write(s+'<br><br>');<br> }<br> //--><br> </SCRIPT><br> 很高兴大家能到这里来, 这还是很原始的程序,请不要见笑。 </p><br> <p>Support by Amw. </p><br> <P><br> <? <p>$shm_id=shm_attach($room);<br> $shm_var=$room;<br> session_start();</p> <p><br> $old_n=0;<br> flush();</p> <p>$i=0;<br> while($i<3) {<br> sleep(1);</p> <p> $array=@shm_get_var($shm_id,$shm_var);</p> <p> if(is_array($array)) {</p> <p><br> $end=$array['end'];<br> $start=$array['start'];<br> if($old_n>$end) {<br> $old_n=$start;<br> }</p> <p> if($end>$old_n) {<br> <br> if($start>$old_n) </p> <p> for($j=$old_n+1;$j<=$end;$j++) {</p> <p> // list($from,$sayto,$say,$action)=each($array[$j]);<br> $from=$array[$j]['from'];<br> $sayto=$array[$j]['sayto'];<br> $say=$array[$j]['say'];<br> $action=$array[$j]['action'];<br> $hidden=$array[$j]['hidden'];</p> <p> if($from==$user_name) {<br> $color='#000000';<br> } elseif( $sayto==$user_name ) {<br> $color='#993366';<br> } else {<br> $color='#000000';<br> }<br> </p> <p> if( ($from==$user_name) || ($hidden && ($sayto==$user_name )) || !$hidden) {<br> $s="<font color=#6666FF>".$from.<br> "</font>对<a href=javascript:parent.cs('$sayto'); cl ass=font1 target=bottom title=$sayto>"<br> ."$sayto</a>$action: <font color=$color>$say</fo nt>";<br> // $s=htmlspecialchars($array[$j]);<br> echo "<SCRIPT Language="javascript1.1">sayto( '$s');</SCRIPT>n";<br> }</p> <p> }<br> $old_n=$end;<br> flush();<br> }<br> }<br> #$i++;</p> <p>}</p> <p>?><br> </body><br> </html></p> <p>// 提交部份<br> <html><br> <body onLoad="form1.say.focus();" bgcolor="#EFF5FE "><br> <form name="form1"><br> <table width="100%" border="0" cellspacing=&q uot;0" cellpadding="0"><br> <tr><br> <td width="75%">对象 <?<br> include ('../mylib.inc');</p> <p> session_start();<br> validuser($user_name);</p> <p>$shm_id=shm_attach($room);<br> $shm_var=$room;<br> $shm_userlist=12;</p> <p>if($clearbtn) {<br> shm_remove_var($shm_id,$shm_var);<br> } <br> elseif($say) {<br> $s=@shm_get_var($shm_id,$shm_var);<br> if(!is_array($s)) { <br> $s=array('start'=>1,'end'=>0,'count'=>0);<br> }</p> <p>$end=$s['end']+1; <br> $start=$s['start'];<br> $count=$s['count'];<br> if($end-$start>=10) {<br> unset($s[$start]);<br> $s['start']=$start+1;<br> }</p> <p>//$s[$end]="<font color=#6666FF>".$user_name.<br> // "</font>对<a href=javascript:parent.cs('$sayto'); class=font1 target=bottom title=$sayto>"<br> // .$sayto."</a>$action: ".$say;</p> <p>$s[$end]=array( 'from'=>$user_name,<br> 'sayto'=>$sayto,<br> 'say'=>$say,<br> 'action'=>$action,<br> 'hidden'=>$hidden);</p> <p>$s['end']=$end;<br> $s['count']=$count+1;</p> <p>shm_put_var($shm_id,$shm_var,$s);<br> #$s=array("Hello","sdf");<br> }</p> <p>$ul=@shm_get_var($shm_id,$shm_userlist);<br> if(!is_array($ul)) {<br> $ul=array();<br> }<br> if(! $ul["$user_name"] ) { <br> $ul["$user_name"]=1;<br> shm_put_var($shm_id,$shm_userlist,$ul);<br> }<br> <br> $defs=($sayto=="所有人") ? "selected":"&quo t;;<br> echo " <select name="sayto"><br> <option $defs>所有人</option>";<br> while( list($key,$val)=each($ul) ) {<br> $defs=($sayto==$key) ? "selected":"";<br> echo "<option $defs>$key</option>";<br> }<br> echo "</select>";</p> <p>?> 动作 <br> <select name="action" title="各种聊天动作和表情选择 ,您也可以在信息输入框中直接使用各种EMOTE。" ><br> <option value="说">说话 <br> <option value="叫嚷">叫嚷 <br> <option value="亲亲">亲亲 <br> <option value="拥抱">拥抱 <br> <option value="暴怒">暴怒 <br> <option value="眨眼">眨眼 <br> <option value="轻推">轻推 <br> <option value="点头">点头 <br> <option value="询问">询问 <br> <option value="傻笑">傻笑 <br> <option value="拳打">拳打 <br> <option value="脚踢">脚踢 <br> <option value="告诫">告诫 <br> <option value="耳光">耳光 <br> <option value="鞠躬">鞠躬 <br> <option value="歉意">歉意 <br> <option value="同意">同意 <br> <option value="惊讶">惊讶 <br> <option value="摇头">摇头 <br> <option value="哈欠">哈欠 <br> <option value="微笑">微笑 <br> <option value="握手">握手 <br> <option value="挥手">挥手 <br> <option value="耸肩">耸肩 <br> <option value="大哭">大哭 <br> <option value="抽泣">抽泣 <br> <option value="安慰">安慰 <br> <option value="生气">生气 <br> <option value="承诺">承诺 <br> <option value="不舍">不舍 <br> <option value="深情">深情 <br> <option value="迷惑">迷惑 <br> <option value="耳语">耳语 <br> </select><br> 悄悄话 <br> <input type="checkbox" name="hidden" value=&q uot;1" <? if($hidden)?> ><br> 图音 <br> <input type="checkbox" name="can_html" value= "1"><br> <br><br> 信息 <br> <input type="text" name="say" size="50&q uot;><br> <input type="submit" name="submit" value=&quo t;发送"><br> <br><br> <input type="submit" name="Submit2" value=&qu ot;刷新" <br> onClick="javascript:parent.saylist.location.reload();"> <br> <!-- <input type="submit" name="clearbtn" value="清除"> --><br> <input type="submit" name="Submit" value=&quo t;离开"><br> <input type="hidden" name="room" value=<? echo $room;?> ><br> </td><br> <td width="25%"> <br> <div align="center"><a href="http://book.new zhongshan.com" target="_blank">新城书店</a> <br> <br><br> <a href="http://www.newzhongshan.com/edu/" target=" ;_blank">新城教育</a> <br> <br><br> <a href="http://www.newzhongshan.com" target="_bla nk">最新消费信息</a> </div><br> </td><br> </tr><br> </table><br> </form><br> </body><br> </html></p> <p>// 完</p> <p>实例可以在 http://202.96.189.113/pcb/ 里,最好先注册。</p> <p>另外,在现实过程中,用户列表的实时更新是个大问题,大家有什么好方法? <br> |