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 相关文章推荐
浅析SVN常见问题及解决方法
Jun 21 PHP
php文件上传简单实现方法
Jan 24 PHP
PHP处理大量表单字段的便捷方法
Feb 07 PHP
老版本PHP转义Json里的特殊字符的函数
Jun 08 PHP
php基于mcrypt_encrypt和mcrypt_decrypt实现字符串加密解密的方法
Jul 12 PHP
php cookie工作原理与实例详解
Jul 18 PHP
PHP模糊查询的实现方法(推荐)
Sep 06 PHP
PHP自定义函数获取汉字首字母的方法
Dec 01 PHP
老生常谈ThinkPHP中的行为扩展和插件(推荐)
May 05 PHP
php实现微信企业付款到个人零钱功能
Oct 09 PHP
php解决crontab定时任务不能写入文件问题的方法分析
Sep 16 PHP
laravel 实现设置时区的简单方法
Oct 10 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
星际争霸 Starcraft 发展史
2020/03/14 星际争霸
PDO::commit讲解
2019/01/27 PHP
php设计模式之适配器模式原理、用法及注意事项详解
2019/09/24 PHP
php和nginx交互实例讲解
2019/09/24 PHP
JavaScript 拖拉缩放效果
2008/12/10 Javascript
nodejs中操作mysql数据库示例
2014/12/20 NodeJs
javascript实现鼠标拖动改变层大小的方法
2015/04/30 Javascript
AngularJS基础学习笔记之指令
2015/05/10 Javascript
手机开发必备技巧:javascript及CSS功能代码分享
2015/05/25 Javascript
AngularJS实用开发技巧(推荐)
2016/07/13 Javascript
AngularJs Modules详解及示例代码
2016/09/01 Javascript
概述jQuery的元素筛选
2016/11/23 Javascript
详解JS中的快速排序与冒泡
2017/01/10 Javascript
vue2实现移动端上传、预览、压缩图片解决拍照旋转问题
2017/04/13 Javascript
jQuery自定义元素右键点击事件(实现案例)
2017/04/28 jQuery
vue自定义全局共用函数详解
2018/09/18 Javascript
[00:55]深扒TI7聊天轮盘语音出处3
2017/05/11 DOTA
[53:36]Liquid vs VP Supermajor决赛 BO 第三场 6.10
2018/07/05 DOTA
python 多进程通信模块的简单实现
2014/02/20 Python
Python六大开源框架对比
2015/10/19 Python
python微信跳一跳系列之棋子定位颜色识别
2018/02/26 Python
python实现将excel文件转化成CSV格式
2018/03/22 Python
PyQt5实现简单数据标注工具
2019/03/18 Python
Django ORM 聚合查询和分组查询实现详解
2019/08/09 Python
完美解决Pycharm中matplotlib画图中文乱码问题
2021/01/11 Python
Expedia泰国:预订机票、酒店和旅游包(航班+酒店)
2016/09/27 全球购物
异步传递消息系统的作用
2016/05/01 面试题
网络教育毕业生自我鉴定
2013/10/10 职场文书
个人简历的自荐信
2013/10/23 职场文书
个性与发展自我评价
2014/02/11 职场文书
初三学生个人自我评定
2014/04/06 职场文书
2014年征兵标语
2014/06/20 职场文书
检讨书之工作不认真
2019/08/14 职场文书
CSS3 实现的图片悬停的切换按钮
2021/04/13 HTML / CSS
Python制作春联的示例代码
2022/01/22 Python
使用python生成大量数据写入es数据库并查询操作(2)
2022/09/23 Python