当前位置:首页 > 综合实例 > 列表

php实现简单聊天功能

发布:smiling 来源: PHP粉丝网  添加日期:2022-06-12 12:09:33 浏览: 评论:0 

php实现简单聊天功能

1、创建聊天消息表,其表的字段有消息内容,发送时间和发送者的名称;

SQL:

  1. CREATE TABLE `guanhui`.`message` (  
  2.  
  3.     `id` INT(10) NOT NULL AUTO_INCREMENT COMMENT '消息ID' ,  
  4.  
  5.     `content` VARCHAR(255) NOT NULL COMMENT '消息内容' ,  
  6.  
  7.     `sender` VARCHAR(60) NOT NULL COMMENT '发送者' ,  
  8.  
  9.     `send_time` INT(10) NOT NULL COMMENT '发送时间' , 
  10.  
  11.      PRIMARY KEY (`id`) 
  12.  
  13.  ) ENGINE = MyISAM; 

2、创建php文件将聊天消息查询出来,并以json格式输出;

  1. $con = mysql_connect("localhost","",""); 
  2.  
  3. if (!$con) { 
  4.  
  5.     die('Could not connect: ' . mysql_error()); 
  6.  
  7.  
  8. mysql_select_db("chat"$con); 
  9.  
  10. mysql_query("set names 'utf8'");             
  11.  
  12. $sql = "SELECT * FROM  `message`"
  13.  
  14. $result = mysql_query($sql); 
  15.  
  16. if(isset($result)){ 
  17.  
  18.     json_encode(array
  19.  
  20.         'code' => 0, 
  21.  
  22.         'msg' => 'OK'
  23.  
  24.         'data' => mysql_fetch_array($result, MYSQL_ASSOC) 
  25.  
  26.     )) 
  27.  
  28. else { 
  29.  
  30.     json_encode(array
  31.  
  32.         'code' => 0, 
  33.  
  34.         'msg' => '聊天信息为空!' 
  35.  
  36.     )) 
  37.  

3、在前端使用Ajax轮询请求php文件,并将消息展示出来。

  1. setInterval(function(){ 
  2.  
  3.  
  4.  
  5.     $.get('/get_message_list.php'function(data){ 
  6.  
  7.  
  8.  
  9.         $(data).each(function(value, item){ 
  10.  
  11.             $('#message_list').append('来自:' + data.sender + '的消息:' + data.message + '发送时间:', data.send_time); 
  12.  
  13.         }); 
  14.  
  15.  
  16.  
  17.     }); 
  18.  
  19.  
  20.  
  21. }, 600); 

4、创建send_message.php用来接收发送的消息,并将数据储存到数据库。

  1. $send_time = date('Y-m-d H:i:s',time());; 
  2.  
  3. $send = $_POST['sender']; 
  4.  
  5. $content = $_POST['content']; 
  6.  
  7. $con = mysql_connect("localhost","",""); 
  8.  
  9. if (!$con) { 
  10.  
  11.   die('Could not connect: ' . mysql_error()); 
  12.  
  13.  
  14. mysql_select_db("ing"$con); 
  15.  
  16. mysql_query("set names 'utf8'"); 
  17.  
  18. $insert="INSERT INTO  `chat` (`id` ,`sender` ,`content` ,`send_time`) VALUES (NULL ,  '$sender',  '$content',  '$send_time')"
  19.  
  20. $result = mysql_query($insert); 

5、在前端获取要发送的消息,并请求send_message.php。

  1. function sendcontent() 
  2.  
  3.   { 
  4.  
  5.     var xmlhttp; 
  6.  
  7.     if (window.XMLHttpRequest) 
  8.  
  9.     {// code for IE7+, Firefox, Chrome, Opera, Safari 
  10.  
  11.       xmlhttp=new XMLHttpRequest(); 
  12.  
  13.     } 
  14.  
  15.     else 
  16.  
  17.     {// code for IE6, IE5 
  18.  
  19.       xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
  20.  
  21.     } 
  22.  
  23.     xmlhttp.onreadystatechange=function() 
  24.  
  25.     { 
  26.  
  27.       if (xmlhttp.readyState==4 && xmlhttp.status==200) 
  28.  
  29.       // 服务端返回了正确数据,开始响应处理 
  30.  
  31.       {    
  32.  
  33.         document.getElementById("input").innerHTML=""
  34.  
  35.       }  
  36.  
  37.     } 
  38.  
  39.     xmlhttp.open("POST","/send_message.php",true); 
  40.  
  41.     var f=document.chat; 
  42.  
  43.     var content = f.content.value; 
  44.  
  45.     var sender = f.sender.value; 
  46.  
  47.     //发送请求 
  48.  
  49.     //这里使用Post方法传递参数; 
  50.  
  51.     //将要构造的参数连接起来,接收的时候:$_POST['send']; 
  52.  
  53.     var post_str= "content="+ content+"&sender="+sender; 
  54.  
  55.     //使用post的时候必须在发送请求之前加上下面这句 
  56.  
  57.     xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded"); 
  58.  
  59.     xmlhttp.send(post_str); 
  60.  
  61.   }

Tags: php聊天功能

分享到: