仿iPad界面的在线群聊
时间:2021-07-01 10:21:17
帮助过:26人阅读
web在线群聊(iPad界面) 源码全部在ichat.zip压缩包里
主要包括三个文件:
index.php:表单值获取昵称文件,传值给
chat.php文件;
chat
.php
:主要文件,获取index.php的传值后,判断是否填写昵称,空则为游客,本页包含聊天内容输入文本框,提交给本页面处理,将聊天记录保存在自动创建的chat.txt文件中,使用iframe调用view.php来显示聊天内容;
view
.php
:
按行读取chat.txt文件的内容,逆序输出,每间隔20s自动刷新 待改进方面:(本人新手,正在学习中) 1.防刷新机制 2.读取内容应该用ajax 演示地址:http://qhbbs.tk/
- /*创建会话,判断是否填写昵称,没有则为游客*/
- session_start();
- if(isset($_SESSION['views']))
- $_SESSION['views']=$_SESSION['views']+1;
- else
- $_SESSION['views']=1;
- if($_SESSION['views']==1)$_SESSION['username']=$_POST['user'];
- if(!$_SESSION['username'])$_SESSION['username']="游客";
- if($_POST['user'])$_SESSION['username']=$_POST['user'];
- $user=$_SESSION['username'];
- $words=$_POST['words'];//聊天内容赋值
- if(empty($words))exit;
- savechat($words,$_SESSION['username']);//保存聊天内容
- /*以下为保存聊天内容函数*/
- function savechat($msg, $user)
- {
- $date=date('H:i:s',time());
- $DOCUMENT_ROOT=$_SERVER['DOCUMENT_ROOT'];
- if (!$fp=fopen("$DOCUMENT_ROOT/chat.txt",'a+')) {
- die('创建聊天记录文件失败, 请检查是否有权限.');
- }
- $msg = htmlspecialchars($msg);
- $msg = preg_replace('/([httpftp:\/\/])*([a-zA-])+\.([a-zA-Z0-9_-])+\.([a-zA-Z0-9_-])+(a-zA-Z0-9_)*/', '\\0', $msg);
- $msg = preg_replace('/([a-zA-Z0-9_\.])+@([a-zA-Z0-9-])+\.([a-zA-Z0-9-]{2,4})+/', '\\0', $msg);
- $msg ='['.$date.']'."\t".$user.":".$msg."\n";
- if (!fwrite($fp, $msg)) {
- die('写入聊天记录失败.');
- }
- fclose($fp);
- }
- ?>
- $DOCUMENT_ROOT=$_SERVER['DOCUMENT_ROOT'];
- $fp=fopen("$DOCUMENT_ROOT/chat.txt",'a+');
- if(!$fp){
- echo "
Didn't write chat log in chat.txt.Please try say again. "; - exit;
- }
- $handle=$fp;
- $temp_arr=array();
- do
- {
- $file=fgets($handle,1024);
- $temp_arr[]=$file;
- }
- while(!feof($handle));
- fclose($handle);
- krsort($temp_arr);//逆序
- foreach($temp_arr as $value){
- echo "".$value.""."
"; - }
- ?>
|