欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程语言 > php >内容正文

php

php 开发一个聊天系统,ajax+php 实现一个简单的在线聊天室功能(附带源码)

发布时间:2025/3/11 php 46 豆豆
生活随笔 收集整理的这篇文章主要介绍了 php 开发一个聊天系统,ajax+php 实现一个简单的在线聊天室功能(附带源码) 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

通过ajax和setInterval()函数,配合php+mysql实现一个简单的在线聊天室的功能。附带详细源码案例。这个聊天室是一个简单的聊天室,通过javascript setInterval()和ajax函数,不停的去获取服务器获取最新的聊天数据信息,并无刷新的写入到前台DOM中,来实现在线聊天的功能,这是一个比较笨的方法实现在线聊天室功能,不建议用于实际项目中。html代码:

实现一个简单的在线聊天室功能

在线聊天

.chats { width:100%;max-height:295px;min-height:200px; height:auto; overflow-y:auto; }

.chatbtn { width:100%; padding:10px 10px; border-top:1px dashed #000;}

.chats .chatlist { width:100%; padding:10px 10px; min-height:24px; line-height:1.2; font-size:13px; text-align:left; }

.chats .chatlist .chattit {  font-size:14px; }

.chats .chatlist .chattit span { margin-right:2px; }

.chats .chatlist .chatcon { font-size:13px; padding-left:10px; margin-top:6px;text-decoration: underline;}

发送

//js聊天代码

$(function(){

//获取聊天数据

setInterval(function(){

var star = $('#datachat').attr('data_num');

//判断是不是第一次加载,如果是第一次加载直接获取数据库最新的数据

//如果不是第一次加载,就不停的去获取服务器的最新聊天数据

if(star=='load'){

$.ajax({

url:'inc/chat.php?type=get_def',

type:'post',

cache:false,

dataType:'json',

success:function(data){

if(data !='error!'){

var clength = data.length-1;

for(var i=clength;i>=0;i--){

$(".chats").append("

"+data[i].name+""+data[i].addtime+"["+data[i].address+"]:"+data[i].content+"");

$('#datachat').attr('data_num',data[i].id);

$(".chats").animate({scrollTop:$('.chats')[0].scrollHeight},2000);

}

}

}

});

}else{

$.ajax({

url:'inc/chat.php?type=get_new',

type:'post',

cache:false,

dataType:'json',

data:{

'num':star

},

success:function(data){

if(data !='error!'){

var clength = data.length-1;

for(var i=clength;i>=0;i--){

$(".chats").append("

"+data[i].name+""+data[i].addtime+"["+data[i].address+"]:"+data[i].content+"");

$('#datachat').attr('data_num',data[i].id);

$(".chats").animate({scrollTop:$('.chats')[0].scrollHeight},700);

}

}

}

});

}

},1500);

//发送聊天数据

$('#chat_send').click(function(){

var chat_name = $('#name').val();

var chat_con = $('#con').val();

if(chat_name==''){

$('#name').val('昵称不可以为空!');

return false;

}else if(chat_name=='昵称不可以为空!'){

$('#name').val(' ');

return false;

}else if(chat_name.length<1){

$('#name').val('昵称太短!');

return false;

}else if(chat_name=='昵称太短!'){

$('#name').val(' ');

return false;

}

if(chat_con==''){

$('#con').val('内容不可以为空!');

return false;

}else if(chat_con=='内容不可以为空!'){

$('#con').val(' ');

return false;

}else if(chat_con.length<1){

$('#con').val('内容太短!');

return false;

}else if(chat_con=='内容太短!'){

$('#con').val(' ');

return false;

}

$.ajax({

url:'inc/chat.php?type=send',

type:'post',

cache:false,

dataType:'text',

data:{

'name':chat_name,

'con':chat_con

},

success:function(data){

if(data=='发送成功!'){

$('#chat_send').text('发送成功');

}else{

$('#chat_send').text('发送失败');

}

setTimeout(function(){

$('#chat_send').text('发送');

},1000);

},

error:function(){

alert('请求出错!');

}

});

});

});

php数据处理代码 chat.php:<?php

header("Conten-type:text/html;charset=utf-8");

require('../config.php');

require('getip.php');

if( $_SERVER['REQUEST_METHOD'] == "POST" ) {

if ($_GET['type'] == 'send') {

//添加聊天数据

$name = htmlspecialchars(addslashes(trim($_POST['name'])));

$con = htmlspecialchars(addslashes(trim($_POST['con'])));

if (empty($name) || empty($con)) {

echo "信息填写不完整。";

exit;

} else {

$ip = GetIpFrom();

$ips = $ip[0] .'-'. $ip[1];

if($dbh->exec("insert into chat (name,content,addtime,address) values('$name','$con',now(),'$ips')")>0){

echo '发送成功!';

exit;

}else{

echo '发送失败!';

exit;

}

}

}else if ($_GET['type'] == 'get_def'){

//获取数据

$res = $dbh->query("SELECT * FROM chat ORDER BY id DESC LIMIT 10");

$res = $res->fetchAll();

if($res){

echo json_encode($res);

exit;

}else{

echo 'error!';

exit;

}

}else if($_GET['type'] == 'get_new'){

$num = intval($_POST['num']);

$sql1 ="SELECT * FROM chat WHERE id>{$num} ORDER BY id DESC";

$res1 = $dbh -> query($sql1);

$res2 = $res1->fetchAll();

if($res2){

echo json_encode($res2);

exit;

}else{

echo 'error!';

exit;

}

}

}

?>mysql数据库结构:CREATE TABLE IF NOT EXISTS `chat` (

`id` int(8) NOT NULL AUTO_INCREMENT COMMENT 'id',

`name` char(10) NOT NULL COMMENT '昵称',

`content` varchar(255) NOT NULL COMMENT '内容',

`addtime` datetime NOT NULL COMMENT '发布时间',

`address` varchar(80) DEFAULT '未知' COMMENT 'ip地址',

PRIMARY KEY (`id`)

) ENGINE=InnoDB  DEFAULT CHARSET=utf8 COMMENT='在线聊天' AUTO_INCREMENT=3 ;

ajax+php简单聊天室源码下载:

总结

以上是生活随笔为你收集整理的php 开发一个聊天系统,ajax+php 实现一个简单的在线聊天室功能(附带源码)的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。