热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

php实现简单聊天功能

php实现简单聊天功能:首先创建聊天消息表,其表的字段有消息内容,发送时间和发送者的名称;然后创建php文件将聊天消息查询出来,并以json格式输出;最后在前端使用Ajax轮询请求php文件,并将消息展示出来。

php实现简单聊天功能

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

SQL:

CREATE TABLE `guanhui`.`message` ( 
    `id` INT(10) NOT NULL AUTO_INCREMENT COMMENT '消息ID' , 
    `content` VARCHAR(255) NOT NULL COMMENT '消息内容' , 
    `sender` VARCHAR(60) NOT NULL COMMENT '发送者' , 
    `send_time` INT(10) NOT NULL COMMENT '发送时间' ,
     PRIMARY KEY (`id`)
 ) ENGINE = MyISAM;

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

$con = mysql_connect("localhost","","");
if (!$con) {
    die('Could not connect: ' . mysql_error());
}
mysql_select_db("chat", $con);
mysql_query("set names 'utf8'");            
$sql = "SELECT * FROM  `message`";
$result = mysql_query($sql);
if(isset($result)){
    json_encode(array(
        'code' => 0,
        'msg' => 'OK',
        'data' => mysql_fetch_array($result, MYSQL_ASSOC)
    ))
} else {
    json_encode(array(
        'code' => 0,
        'msg' => '聊天信息为空!'
    ))
}

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

setInterval(function(){

    $.get('/get_message_list.php', function(data){

        $(data).each(function(value, item){
            $('#message_list').append('来自:' + data.sender + '的消息:' + data.message + '发送时间:', data.send_time);
        });

    });

}, 600);

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

$send_time = date('Y-m-d H:i:s',time());;
$send = $_POST['sender'];
$cOntent= $_POST['content'];
$con = mysql_connect("localhost","","");
if (!$con) {
  die('Could not connect: ' . mysql_error());
}
mysql_select_db("ing", $con);
mysql_query("set names 'utf8'");
$insert="INSERT INTO  `chat` (`id` ,`sender` ,`content` ,`send_time`) VALUES (NULL ,  '$sender',  '$content',  '$send_time')";
$result = mysql_query($insert);

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

function sendcontent()
  {
    var xmlhttp;
    if (window.XMLHttpRequest)
    {// code for IE7+, Firefox, Chrome, Opera, Safari
      xmlhttp=new XMLHttpRequest();
    }
    else
    {// code for IE6, IE5
      xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
    xmlhttp.Onreadystatechange=function()
    {
      if (xmlhttp.readyState==4 && xmlhttp.status==200)
      // 服务端返回了正确数据,开始响应处理
      {   
        document.getElementById("input").innerHTML="";
      } 
    }
    xmlhttp.open("POST","/send_message.php",true);
    var f=document.chat;
    var cOntent= f.content.value;
    var sender = f.sender.value;
    //发送请求
    //这里使用Post方法传递参数;
    //将要构造的参数连接起来,接收的时候:$_POST['send'];
    var post_str= "cOntent="+ content+"&sender="+sender;
    //使用post的时候必须在发送请求之前加上下面这句
    xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
    xmlhttp.send(post_str);
  }

以上就是php实现简单聊天功能的详细内容,更多请关注 第一PHP社区 其它相关文章!


推荐阅读
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 使用正则表达式爬取36Kr网站首页新闻的操作步骤和代码示例
    本文介绍了使用正则表达式来爬取36Kr网站首页所有新闻的操作步骤和代码示例。通过访问网站、查找关键词、编写代码等步骤,可以获取到网站首页的新闻数据。代码示例使用Python编写,并使用正则表达式来提取所需的数据。详细的操作步骤和代码示例可以参考本文内容。 ... [详细]
  • 本文介绍了前端人员必须知道的三个问题,即前端都做哪些事、前端都需要哪些技术,以及前端的发展阶段。初级阶段包括HTML、CSS、JavaScript和jQuery的基础知识。进阶阶段涵盖了面向对象编程、响应式设计、Ajax、HTML5等新兴技术。高级阶段包括架构基础、模块化开发、预编译和前沿规范等内容。此外,还介绍了一些后端服务,如Node.js。 ... [详细]
  • 分享css中提升优先级属性!important的用法总结
    web前端|css教程css!importantweb前端-css教程本文分享css中提升优先级属性!important的用法总结微信门店展示源码,vscode如何管理站点,ubu ... [详细]
  • 本文介绍了如何使用jQuery和AJAX来实现动态更新两个div的方法。通过调用PHP文件并返回JSON字符串,可以将不同的文本分别插入到两个div中,从而实现页面的动态更新。 ... [详细]
  • ECMA262规定typeof操作符的返回值和instanceof的使用方法
    本文介绍了ECMA262规定的typeof操作符对不同类型的变量的返回值,以及instanceof操作符的使用方法。同时还提到了在不同浏览器中对正则表达式应用typeof操作符的返回值的差异。 ... [详细]
  • Allegro总结:1.防焊层(SolderMask):又称绿油层,PCB非布线层,用于制成丝网印板,将不需要焊接的地方涂上防焊剂.在防焊层上预留的焊盘大小要比实际的焊盘大一些,其差值一般 ... [详细]
  • CSS|网格-行-结束属性原文:https://www.gee ... [详细]
  • css元素可拖动,如何使用CSS禁止元素拖拽?
    一、用户行为三剑客以下3个CSS属性:user-select属性可以设置是否允许用户选择页面中的图文内容;user-modify属性可以设置是否允许输入 ... [详细]
  • 高质量SQL书写的30条建议
    本文提供了30条关于优化SQL的建议,包括避免使用select *,使用具体字段,以及使用limit 1等。这些建议是基于实际开发经验总结出来的,旨在帮助读者优化SQL查询。 ... [详细]
  • SpringMVC接收请求参数的方式总结
    本文总结了在SpringMVC开发中处理控制器参数的各种方式,包括处理使用@RequestParam注解的参数、MultipartFile类型参数和Simple类型参数的RequestParamMethodArgumentResolver,处理@RequestBody注解的参数的RequestResponseBodyMethodProcessor,以及PathVariableMapMethodArgumentResol等子类。 ... [详细]
  • 使用chrome编辑器实现网页截图功能的方法
    本文介绍了在chrome浏览器中使用编辑器实现网页截图功能的方法。通过在地址栏中输入特定命令,打开控制台并调用命令面板,用户可以方便地进行网页截图操作。 ... [详细]
  • 工作经验谈之-让百度地图API调用数据库内容 及详解
    这段时间,所在项目中要用到的一个模块,就是让数据库中的内容在百度地图上展现出来,如经纬度。主要实现以下几点功能:1.读取数据库中的经纬度值在百度上标注出来。2.点击标注弹出对应信息。3 ... [详细]
  • 前言:关于跨域CORS1.没有跨域时,ajax默认是带cookie的2.跨域时,两种解决方案:1)服务器端在filter中配置详情:http:blog.csdn.netwzl002 ... [详细]
author-avatar
拍友2702933273
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有