日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

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

發布時間:2025/3/11 php 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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 实现一个简单的在线聊天室功能(附带源码)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。