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 相关文章推荐
dedecms模版制作使用方法
Apr 03 PHP
那些年一起学习的PHP(二)
Mar 21 PHP
PHP不用第三变量交换2个变量的值的解决方法
Jun 02 PHP
php使用ICQ网关发送手机短信
Oct 30 PHP
PHP将字符分解为多个字符串的方法
Nov 22 PHP
PHP获取某个月最大天数(最后一天)的方法
Jul 29 PHP
浅析PHP关键词替换的类(避免重复替换,保留与还原原始链接)
Sep 22 PHP
PHP实现清除wordpress里恶意代码
Oct 21 PHP
php文件系统处理方法小结
May 23 PHP
Yii针对添加行的增删改查操作示例
Oct 18 PHP
yii 2.0中表单小部件的使用方法示例
May 23 PHP
JS+PHP实现用户输入数字后显示最大的值及所在位置
Jun 19 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
Yii2实现上下联动下拉框功能的方法
2016/08/10 PHP
PHP获取当前日期及本周一是几月几号的方法
2017/03/28 PHP
formValidator3.3的ajaxValidator一些异常分析
2011/07/12 Javascript
jQuery语法总结和注意事项小结
2012/11/11 Javascript
JS特权方法定义作用以及与公有方法的区别
2013/03/18 Javascript
js文件Cookie存取值示例代码
2014/02/20 Javascript
js 验证身份证信息有效性
2014/03/28 Javascript
jQuery中offset()方法用法实例
2015/01/16 Javascript
JavaScript动态修改背景颜色的方法
2015/04/16 Javascript
浅谈Javascript数组的使用
2015/07/29 Javascript
JS实现网页右侧带动画效果的伸缩窗口代码
2015/10/29 Javascript
javascript简单比较日期大小的方法
2016/01/05 Javascript
JavaScript中通过提示框跳转页面的方法
2016/02/14 Javascript
Javascript将双字节字符转换成单字节字符并计算长度
2016/06/22 Javascript
AngularJS模仿Form表单提交的实现代码
2016/12/08 Javascript
JQuery Dialog对话框 不能通过Esc关闭的原因分析及解决办法
2017/01/18 Javascript
js实现自定义进度条效果
2017/03/15 Javascript
vue2.0中vue-cli实现全选、单选计算总价格的实例代码
2017/07/18 Javascript
在JS循环中使用async/await的方法
2018/10/12 Javascript
JS实现的点击按钮图片上下滚动效果示例
2019/01/28 Javascript
详解nuxt 微信公众号支付遇到的问题与解决
2019/08/26 Javascript
python在Windows下安装setuptools(easy_install工具)步骤详解
2016/07/01 Python
Python 详解基本语法_函数_返回值
2017/01/22 Python
Python模拟脉冲星伪信号频率实例代码
2018/01/03 Python
python看某个模块的版本方法
2018/10/16 Python
对python中词典的values值的修改或新增KEY详解
2019/01/20 Python
更新升级python和pip版本后不生效的问题解决
2020/04/17 Python
鼠标滚轮事件和Mac触控板双指事件
2019/12/23 HTML / CSS
final, finally, finalize的区别
2012/03/01 面试题
促销活动总结
2014/04/28 职场文书
关爱残疾人标语
2014/06/25 职场文书
首次购房证明
2015/06/19 职场文书
2019年大学生职业生涯规划书
2019/03/25 职场文书
解决jupyter notebook图片显示模糊和保存清晰图片的操作
2021/04/24 Python
golang中实现给gif、png、jpeg图片添加文字水印
2021/04/26 Golang
在SQL Server中使用 Try Catch 处理异常的示例详解
2022/07/15 SQL Server