php实现的简单聊天室应用程序代码

php实现的简单聊天室应用程序代码
核心逻辑

在定义应用程序的核心功能之前,请查看聊天应用程序的基本外观,如下面的截图所示:
进入聊天文本通过输入框在聊天窗口的底部,单击发送按钮启动功能set_chat_msg.this是一个基于Ajax的功能,因此不需要刷新页面来发送聊天文字到服务器。程序执行chat_send_ajax.php以及服务器上的用户名和聊天文本。
聊天消息
set_chat_msg()函数
{
如果(typeof XMLHttpRequest!=未定义
{
oxmlhttpsend =新的XMLHttpRequest();
}
如果(窗口。ActiveX对象)
{
oxmlhttpsend =新的ActiveX对象(微软。XMLHTTP );
}
如果(oxmlhttpsend = null)
{
警报(浏览器不支持XML HTTP请求);
返回;
}

var url =chat_send_ajax .php;
var声明变量=无名;
无功strmsg = ;
如果(document.getelementbyid(txtname )!= null)
{
不同的= document.getelementbyid(txtname )的价值;
document.getelementbyid(txtname)。只读=真;
}
如果(document.getelementbyid(txtmsg )!= null)
{
strmsg = document.getelementbyid(txtmsg )的价值;
document.getelementbyid(txtmsg )价值= ;
}

url =名称= + + = + strmsg不同味精;
OxmlHttpSend.open(
OxmlHttpSend.send(空);
}
PHP模块的查询字符串的形式接收数据(查询字符串)和更新到数据库表命名聊天。聊天数据库表列ID,用户名,chatdate,味精,ID字段是一个自动递增字段,所以ID字段的分配自动增加。当前日期时间会被更新到chatdate柱。
require_once('dbconnect。php);

db_connect();

味精=美元美元_get {味精};
$ DT =日期(当前H:我:);
用户_get美元美元{ =名字};

为SQL =插入聊天(用户名,chatdate,MSG)。
值。报价(用户)。。
报价(DT)。

sql $;

结果= mysql_query美元($ SQL);
如果(!$结果)
{
抛出异常('query失败:。mysql_error()));
出口();
}
为了接收从数据库表中的所有用户的聊天信息,计时器功能设置为周期5秒调用Javascript命令,即get_chat_msg函数执行每5秒。

var t = setInterval(function(){ } } get_chat_msg(),5000);
get_chat_msg功能是基于AJAX的。它执行chat_recv_ajax.php程序从数据库表中获取聊天信息。在onreadystatechange属性,另一个Javascript函数get_chat_msg_result相连。而从数据库返回表的聊天信息,程序控制进入get_chat_msg_result功能。
ajax调用
无功oxmlhttp;
无功oxmlhttpsend;

get_chat_msg()函数
{
如果(typeof XMLHttpRequest!=未定义
{
oxmlhttp =新的XMLHttpRequest();
}
如果(窗口。ActiveX对象)
{
oxmlhttp =新的ActiveX对象(微软。XMLHTTP );
}
如果(oxmlhttp = null)
{
警报(浏览器不支持XML HTTP请求);
返回;
}

oxmlhttp.onreadystatechange = get_chat_msg_result;
OxmlHttp.open(
OxmlHttp.send(空);
}
在chat_recv_ajax.php程序,从用户的聊天信息将通过SQL SELECT命令收集。为了限制的行数,限制条款(限制200)是在SQL查询,这就要求在聊天数据库表的最后200行。消息得到回到Ajax功能,这是用来在聊天窗口中的显示内容。
require_once('dbconnect。php);

db_connect();

为SQL =SELECT *,date_format(chatdate,' % % % % M R)
作为CDT的ID DESC LIMIT 200聊天秩序;
$sql = SELECT * FROM (. 为SQL。);
结果= mysql_query美元($ SQL)或死亡('query失败:。mysql_error()));

行信息更新
$;
而(合线= mysql_fetch_array(美元的结果,mysql_assoc))
{
味精=味精。。


}
美元=美元味精味精。<表格样式=颜色:蓝色;字体:Verdana,宋体;。。
字体大小:9pt;border=0>
。$线{CDT}。
。$行用户名}。
。$行 }。


回应$ MSG;

当数据准备,Javascript函数收集数据从PHP接收。这些数据将被安排在div label.oxmlhttp.responsetext将保留从PHP程序复制到document.getelementbyid收到聊天信息(div_chat)。div标签的innerHTML属性。

功能get_chat_msg_result(T)
{
如果(oxmlhttp readyState = = 4。| | oxmlhttp readyState = =完成。)
{
如果(document.getelementbyid(div_chat )!= null)
{
document.getelementbyid(div_chat ).innerHTML = oxmlhttp.responsetext;
oxmlhttp = null;
}
无功scrolldiv = document.getelementbyid(div_chat );
scrolldiv.scrolltop = scrolldiv.scrollheight;
}
}
下面的SQL创建表命令可用于创建名为聊天的数据库表。用户输入的所有信息将被输入数据库表。

创建表的聊天(id bigint auto_increment,用户名varchar(20),

chatdate DateTime,味精varchar(500),主键(ID));

这个部分是用来实现聊天应用程序的代码,很有意思,可以改进成一个完全成熟的http聊天应用程序,创建应用程序的逻辑很简单,即使有任何困难,对于初学者来说也是理解不了的,本文希望能帮助大家学习
免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部