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 相关文章推荐
php木马攻击防御之道
Mar 24 PHP
用PHP连接MySQL代码的参数说明
Jun 07 PHP
令PHP初学者头疼十四条问题大总结
Nov 12 PHP
php中常用的预定义变量小结
May 09 PHP
PHP将两个关联数组合并函数提高函数效率
Mar 18 PHP
PHP实现定时执行任务的方法
Oct 05 PHP
php生成过去100年下拉列表的方法
Jul 20 PHP
php实现与python进行socket通信的方法示例
Aug 30 PHP
php实现socket推送技术的示例
Dec 20 PHP
浅谈PHP SHA1withRSA加密生成签名及验签
Mar 18 PHP
Laravel框架控制器,视图及模型操作图文详解
Dec 04 PHP
PHP命令行与定时任务
Apr 01 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/07/08 PHP
PHP中函数gzuncompress无法使用的解决方法
2017/03/02 PHP
mac os快速切换多个PHP版本的方法
2017/03/07 PHP
PhpStorm 如何优雅的调试Hyperf的方法步骤
2019/11/24 PHP
PHP的图像处理实例小结【文字水印、图片水印、压缩图像等】
2019/12/20 PHP
jquery 扑捉回车键事件代码
2014/04/24 Javascript
JavaScript操作Oracle数据库示例
2015/03/06 Javascript
JS实现数组去重复值的方法示例
2017/02/18 Javascript
详解webpack+vue-cli项目打包技巧
2017/06/17 Javascript
史上最全JavaScript数组去重的十种方法(推荐)
2017/08/17 Javascript
解决Mac node版本升级失败的问题
2018/05/16 Javascript
Angular中使用ng-zorro图标库部分图标不能正常显示问题
2019/04/22 Javascript
uin-app+mockjs实现本地数据模拟
2020/08/26 Javascript
Python 字符串操作方法大全
2014/03/11 Python
一个检测OpenSSL心脏出血漏洞的Python脚本分享
2014/04/10 Python
深入理解NumPy简明教程---数组2
2016/12/17 Python
Python利用Beautiful Soup模块搜索内容详解
2017/03/29 Python
python 字符串转列表 list 出现\ufeff的解决方法
2017/06/22 Python
python pandas中DataFrame类型数据操作函数的方法
2018/04/08 Python
pandas DataFrame 根据多列的值做判断,生成新的列值实例
2018/05/18 Python
Python字符串的一些操作方法总结
2019/06/10 Python
tensorflow如何批量读取图片
2019/08/29 Python
Django中的session用法详解
2020/03/09 Python
工程力学专业毕业生求职信
2013/10/06 职场文书
十佳大学生村官事迹
2014/01/09 职场文书
大学辅导员事迹材料
2014/02/05 职场文书
本科生自荐信
2014/06/18 职场文书
防汛工作情况汇报
2014/10/28 职场文书
慰问信格式
2015/02/14 职场文书
文员岗位职责范本
2015/04/16 职场文书
大学学习委员竞选稿
2015/11/20 职场文书
小学英语课教学反思
2016/02/15 职场文书
2016创先争优活动党员公开承诺书
2016/03/24 职场文书
学习nginx基础知识
2021/09/04 Servers
Element-ui Layout布局(Row和Col组件)的实现
2021/12/06 Vue.js
JavaScript前端面试扁平数据转tree与tree数据扁平化
2022/06/14 Javascript