php网页版聊天软件实现代码


Posted in PHP onAugust 12, 2016

本文实例为大家分享了php匿名聊天室的具体实现代码,供大家参考,具体内容如下

1. index.html   

<html>
 <head>
  <title>聊天室</title>
  <meta charset="utf-8"/>
  <link href="http://libs.baidu.com/bootstrap/3.0.3/css/bootstrap.min.css" rel="stylesheet">
  <script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
  <script src="http://libs.baidu.com/bootstrap/3.0.3/js/bootstrap.min.js"></script>
  <link href="./css/style.css" rel="stylesheet"/>
  <script>
   var maxid = 0;
   function showmessage() {
    //创建ajax对象
    var xhr = new XMLHttpRequest();
    //监听
    xhr.onreadystatechange = function () {
     if (xhr.readyState === 4) {
      eval("var info=" + xhr.responseText);
      var text = "";
      for (var i = 0; i < info.length; i++)
      {
       text += "<div class='alert alert-success'>" +
         "<span class='name'>" + info[i].send + ":</span>" +
         "<span class='message'>" + info[i].content + "</span>" +
         "<span>(" + info[i].time + ")</span>" +
         "</div>";
       maxid = info[i].id;
      }
 
      var old = document.getElementById("msg").innerHTML;
      document.getElementById("msg").innerHTML = old + text;
      document.getElementById("msg").scrollTop = document.getElementById("msg").scrollHeight;
     }
    };
    //初始化
    xhr.open("get", "./action.php?maxid=" + maxid);
    //发送
    xhr.send();
   }
 
   $(document).ready(
     function ()
     {
      showmessage()
      self.setInterval("showmessage()", 2000);
     }
   );
   function send() {
    var postData ="content="+document.getElementById('content').value;
    var xhr = new XMLHttpRequest();
    xhr.open("POST", "./add.php", true);
    //一定要写头信息不然服务器接收不到
    xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    xhr.onreadystatechange = function () {
     var XMLHttpReq = xhr;
     if (XMLHttpReq.readyState == 4) {
      if (XMLHttpReq.status == 200) {
       document.getElementById('content').value="";
      }
     }
    };
    xhr.send(postData);
   }
  </script>
 </head>
 <body>
 
  <div class="panel panel-default" id="main">
   <!--聊天室名字--> 
   <div class="panel-heading">
    <h3 class="panel-title">
     匿名者聊天室
    </h3>
   </div>
   <!--聊天室名字-->
   <!--聊天室消息框-->
   <div class="panel-body ">
    <div class="well no-bottom ">
     <!--     消息框样式-->
     <!--
     <div class="alert alert-success">成功!很好地完成了提交。</div>
     <div class="alert alert-info">信息!请注意这个信息。</div>
     <div class="alert alert-warning">警告!请不要提交。</div>
     <div class="alert alert-danger">错误!请进行一些更改。</div>
     -->
     <div id="msg" class="showmessage">
     </div>
     <!--聊天室消息框-->
     <div class="well" >
      <form role="form">
       <div class="form-group">
        <label for="name">发送消息</label>
        <textarea class="form-control" id="content" name="content"
           style="resize: none;font-family: Microsoft YaHei;" rows="3" >
        </textarea>
       </div>
       <div style="text-align: right">
        <button type="button" class="btn btn-primary" onclick="send()">
         <span class="glyphicon glyphicon-envelope"></span>
         发送
        </button>
       </div>
      </form>
     </div>
     <!--聊天室发送框-->
    </div>
   </div>
  </div>
 </body>
</html>

2. action.php

<?php
 
$link = mysqli_connect('localhost', 'root', '123', 'test');
mysqli_query($link, 'set names utf8');
$info= array();
header("Content-type: text/html; charset=utf-8");
$id=$_GET['maxid'];
$data = mysqli_query($link, "select * from talk where id>$id");
while ($array = mysqli_fetch_assoc($data)) {
 $info[] = $array;
};
 
 echo json_encode($info);

3. chat.sql

DROP TABLE IF EXISTS `talk`;
CREATE TABLE `talk` (
 `id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 'id',
 `send` varchar(10) CHARACTER SET utf8 DEFAULT NULL COMMENT '发送者昵称',
 `ip` varchar(12) CHARACTER SET utf8 DEFAULT NULL,
 `content` varchar(500) CHARACTER SET utf8 DEFAULT NULL,
 `time` varchar(50) DEFAULT NULL,
 PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=52 DEFAULT CHARSET=utf8;

4. add.php

<?php
 
/**
 * @功能 将表单插入数据库
 */
$content=$_POST['content'];
print_r($_POST);
$time= date("Y-m-d H:i:s", time(0));
$link = mysqli_connect('localhost', 'root', '123', 'test');
mysqli_query($link, 'set names utf8');
$ip = $_SERVER["REMOTE_ADDR"];
$sql="INSERT INTO talk VALUES(NULL,'匿名者','$ip','$content','$time')";
$data = mysqli_query($link,$sql);
echo "$content";
if($data)
 echo "1";
 else
  echo "0";

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
smarty section简介与用法分析
Oct 03 PHP
精通php的十大要点(上)
Feb 04 PHP
PHP 图像尺寸调整代码
May 26 PHP
PHP中的string类型使用说明
Jul 27 PHP
如何设置mysql允许外网访问
Jun 04 PHP
PHP实现扎金花游戏之大小比赛的方法
Mar 10 PHP
PHP远程连接oracle数据库操作实现方法图文详解
Apr 11 PHP
PHP抽象类与接口的区别实例详解
May 09 PHP
php下的原生ajax请求用法实例分析
Feb 28 PHP
PHP Web表单生成器案例分析
Jun 02 PHP
安装PHP扩展时解压官方 tgz 文件后没有configure文件无法进行配置编译的问题
Aug 26 PHP
phpstudy2020搭建站点的实现示例
Oct 30 PHP
PHP 自动加载的简单实现(推荐)
Aug 12 #PHP
py文件转exe时包含paramiko模块出错解决方法
Aug 12 #PHP
PHP url的pathinfo模式加载不同控制器的简单实现
Aug 12 #PHP
PHP命令行执行整合pathinfo模拟定时任务实例
Aug 12 #PHP
谈谈PHP连接Access数据库的注意事项
Aug 12 #PHP
总结PHP中DateTime的常用方法
Aug 11 #PHP
php使用curl详细解析及问题汇总
Aug 11 #PHP
You might like
PHP面向对象自动加载机制原理与用法分析
2016/10/14 PHP
详解PHP文件的自动加载(autoloading)
2018/02/04 PHP
js DOM模型操作
2009/12/28 Javascript
SOSO地图API使用(一)在地图上画圆实现思路与代码
2013/01/15 Javascript
js的alert弹出框出现乱码解决方案
2013/09/02 Javascript
jquery的clone方法应用于textarea和select的bug修复
2014/06/26 Javascript
实例解析JS布尔对象的toString()方法和valueOf()方法
2015/10/25 Javascript
给before和after伪元素设置js效果的方法
2015/12/04 Javascript
js获取鼠标位置实例详解
2015/12/09 Javascript
jQuery操作动态生成的内容的方法
2016/05/28 Javascript
学习vue.js中class与style绑定
2016/12/03 Javascript
使用vue和datatables进行表格的服务器端分页实例代码
2017/06/07 Javascript
HTML5+JS+JQuery+ECharts实现异步加载问题
2017/12/16 jQuery
js嵌套的数组扁平化:将多维数组变成一维数组以及push()与concat()区别的讲解
2019/01/19 Javascript
微信小程序实现pdf、word等格式文件上传的方法
2019/09/10 Javascript
微信小程序跨页面传递data数据方法解析
2019/12/13 Javascript
Vue3项目打包后部署到服务器 请求不到后台接口解决方法
2020/02/06 Javascript
JavaScript实现简易计算器小功能
2020/10/22 Javascript
[03:17]DOTA2英雄基础教程 剧毒术士
2013/12/12 DOTA
PyQt实现界面翻转切换效果
2018/04/20 Python
python爬取网易云音乐评论
2018/11/16 Python
对python3.4 字符串转16进制的实例详解
2019/06/12 Python
详解python websocket获取实时数据的几种常见链接方式
2019/07/01 Python
python实现PID算法及测试的例子
2019/08/08 Python
pytorch 更改预训练模型网络结构的方法
2019/08/19 Python
python爬虫豆瓣网的模拟登录实现
2019/08/21 Python
Python全栈之列表数据类型详解
2019/10/01 Python
Pandas时间序列:时期(period)及其算术运算详解
2020/02/25 Python
使用HTML5 Canvas API中的clip()方法裁剪区域图像
2016/03/25 HTML / CSS
AJAX的全称是什么
2012/11/06 面试题
幼儿园新学期寄语
2014/01/18 职场文书
家长评语大全
2014/01/22 职场文书
儿童生日会策划方案
2014/05/15 职场文书
学校师德承诺书
2014/05/23 职场文书
业务内勤岗位职责
2015/04/13 职场文书
信息技术远程培训心得体会
2016/01/09 职场文书