当前位置:Gxlcms > PHP教程 > 模仿韩顺平老师做的web聊天系统,大神帮忙看下出了啥有关问题

模仿韩顺平老师做的web聊天系统,大神帮忙看下出了啥有关问题

时间:2021-07-01 10:21:17 帮助过:17人阅读

模仿韩顺平老师做的web聊天系统,大神帮忙看下出了啥问题
本帖最后由 alakey 于 2014-01-18 22:52:59 编辑


*******chatRoom.php******


//接受open传递的用户名
$username=$_GET['username'];
$username=trim($username);
session_start();
$loginuser=$_SESSION['loginuser'];
?>







网页聊天室(正在和聊天)










*********getMessageController.php********

require_once 'MessageService.class.php';
header("content-type:text/xml;charset=utf-8");
header("Cache-Control:no-cache"):
$getter=$_POST['getter'];
$sender=$_POST['sender'];

$messageService=new MessageService();

$messageList=$messageService->getMessage($getter,$sender);

echo $messageList;

?>

*********MessageService.class.php********


require_once 'SqlHelper.class.php';
class MessageService{

function addMessage($sender,$getter,$con){
$sql="insert into messages (sender,getter,content,sendtime) values ('$sender','$getter','$con',now())";
$sqlHelper=new SqlHelper();
return $sqlHelper->execute_dml($sql);
}

function getMessage($getter,$sender){

$sql="select * from messages where getter='$getter' and sender='$sender' and isGet=0";

$sqlHelper=new SqlHelper();

$array=$sqlHelper->execute_dql2($sql);
$messageInfo="";
for($i=0;$i $row=$array[$i];
$messageInfo.="{$row['id']}{$row['sender']}{$row['getter']}{$row['content']}{$row['sendtime']}";
}
$messageInfo.="
";
$sqlHelper->close_connect();
return $messageInfo;
}

}
?>

大神帮忙看下问题出在哪了?
------解决思路----------------------
没仔细看。单这一句: session_start();
因其前面有html标签的输出,肯定会有“headers already sent”的错误提示的吧?

你都没说你出什么问题了,让大家如何下手
------解决思路----------------------
书写健壮的代码是很重要的
....
if(myXmlHttpRequest.status==200){
var mesRes=myXmlHttpRequest.responseXML;
if(mesRes.xml == '') { //如果不是 xml 对象
alert(myXmlHttpRequest.responseText);//看一下究竟返回了什么
return;
}
....

------解决思路----------------------
这个估计也就是个外表吧,性能比较差。
聊天室,采用websockeet或comet,
其次也不必用数据库,redis或文件存储即可
------解决思路----------------------
header("Cache-Control:no-cache"):
这种错误,提示应该很明显吧

人气教程排行