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 相关文章推荐
FleaPHP的安全设置方法
Sep 15 PHP
php设计模式之命令模式的应用详解
May 21 PHP
使用PHP编写的SVN类
Jul 18 PHP
Fedora下安装php Redis扩展笔记
Sep 03 PHP
PHP实现对站点内容外部链接的过滤方法
Sep 10 PHP
php单例模式示例分享
Feb 12 PHP
php数组生成html下拉列表的方法
Jul 20 PHP
PHP CURL或file_get_contents获取网页标题的代码及两者效率的稳定性问题
Nov 30 PHP
PHP多维数组转一维数组的简单实现方法
Dec 23 PHP
PHP几个实用自定义函数小结
Jan 25 PHP
PHP基于SPL实现的迭代器模式示例
Apr 22 PHP
php使用环形链表解决约瑟夫问题完整示例
Aug 07 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
ThinkPHP快速入门实例教程之数据分页
2014/07/01 PHP
PHP生成压缩文件实例
2015/02/07 PHP
php实现读取内存顺序号
2015/03/29 PHP
基于PHP实现邮箱验证激活过程详解
2020/10/28 PHP
12个非常有创意的JavaScript小游戏
2010/03/18 Javascript
Javascript获取HTML静态页面参数传递值示例
2013/08/18 Javascript
JavaScript中的prototype.bind()方法介绍
2014/04/04 Javascript
JavaScript操作Oracle数据库示例
2015/03/06 Javascript
举例简介AngularJS的内部语言环境
2015/06/17 Javascript
JS弹出对话框实现方法(三种方式)
2015/12/18 Javascript
jquery日历插件datepicker用法分析
2016/01/22 Javascript
JavaScript中数组Array.sort()排序方法详解
2017/03/01 Javascript
webpack中CommonsChunkPlugin详细教程(小结)
2017/11/09 Javascript
JavaScript实现Tab选项卡切换
2020/02/13 Javascript
如何利用node转发请求详解
2020/09/17 Javascript
vue自定义插件封装,实现简易的elementUi的Message和MessageBox的示例
2020/11/20 Vue.js
[33:23]VG vs Pain 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
Python 文件和输入输出小结
2013/10/09 Python
全面解析Python的While循环语句的使用方法
2015/10/13 Python
python中文分词,使用结巴分词对python进行分词(实例讲解)
2017/11/14 Python
详解python字节码
2018/02/07 Python
Python3.7 新特性之dataclass装饰器
2019/05/27 Python
windows下Python安装、使用教程和Notepad++的使用教程
2019/10/06 Python
Python 迭代,for...in遍历,迭代原理与应用示例
2019/10/12 Python
Python 限定函数参数的类型及默认值方式
2019/12/24 Python
python查询MySQL将数据写入Excel
2020/10/29 Python
全球领先的鞋类零售商:The Walking Company
2016/07/21 全球购物
俄罗斯香水和化妆品网上商店:NOTINO.ru
2019/12/17 全球购物
拖鞋店创业计划书
2014/01/15 职场文书
食堂采购员岗位职责
2014/03/17 职场文书
食品采购员岗位职责
2014/04/14 职场文书
国际贸易毕业生求职信
2014/07/20 职场文书
扶贫办主任查摆“四风”问题个人对照检查材料思想汇报
2014/10/02 职场文书
食品质检员岗位职责
2015/04/08 职场文书
五星红旗迎风飘扬观后感
2015/06/17 职场文书
Redis如何实现分布式锁
2021/08/23 Redis