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

*******chatRoom.php******网页聊天室(正在和聊天)*********getMessageController.php********getMessage($getter,$sender); echo $messageList; ?>*********MessageService.class.php********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['id']}{$row['sender']}{$row['getter']}{$row['content']}{$row['sendtime']}";} $messageInfo.=""; $sqlHelper->close_connect(); return $messageInfo; }}?>

大神帮忙看下问题出在哪了?

回复讨论(解决方案)

没仔细看。单这一句: session_start();

因其前面有html标签的输出,肯定会有“headers already sent”的错误提示的吧?

你都没说你出什么问题了,让大家如何下手

没仔细看。单这一句: session_start();

因其前面有html标签的输出,肯定会有“headers already sent”的错误提示的吧?

你都没说你出什么问题了,让大家如何下手

function getMessage(){ //创建一个xmlHttpRequest对象 var myXmlHttpRequest=getXmlHttpObject(); if(myXmlHttpRequest){ var url="getMessageController.php"; var data="getter=&sender="; myXmlHttpRequest.open("post",url,true); myXmlHttpRequest.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); myXmlHttpRequest.onreadystatechange=function(){ if(myXmlHttpRequest.readyState==4){ if(myXmlHttpRequest.status==200){ //注释1 window.alert("aaa"); var mesRes=myXmlHttpRequest.responseXML; var cons=mesRes.getElementsByTagName("con"); var sendtimes=mesRes.getElementsByTagName("sendtime"); //注释2 window.alert("bbb"); if(cons.length!=0){ for(var i=0;i说:"+cons[i].childNodes[0].nodeValue+"___"+sendtimes[i].childNodes[0].nodeValue; } } } } } myXmlHttpRequest.send(data); } }

主要就是回调函数出问题, 注释1处的能响应,但是注释2处的window.alert就无法响应。大神帮忙看下。

书写健壮的代码是很重要的....if(myXmlHttpRequest.status==200){ var mesRes=myXmlHttpRequest.responseXML; if(mesRes.xml == '') { //如果不是 xml 对象 alert(myXmlHttpRequest.responseText);//看一下究竟返回了什么 return; }....

这个估计也就是个外表吧,性能比较差。

聊天室,采用websockeet或comet,

其次也不必用数据库,redis或文件存储即可

书写健壮的代码是很重要的....if(myXmlHttpRequest.status==200){ var mesRes=myXmlHttpRequest.responseXML; if(mesRes.xml == '') { //如果不是 xml 对象 alert(myXmlHttpRequest.responseText);//看一下究竟返回了什么 return; }.... 谢谢,已经解决了,怪我粗心了,原来是MessageService.class.php中,第二个header()的分号写成了冒号,晕死啊!

这个估计也就是个外表吧,性能比较差。

聊天室,采用websockeet或comet,

其次也不必用数据库,redis或文件存储即可嗯,谢谢了。

header("Cache-Control:no-cache"):

这种错误,提示应该很明显吧

谢谢,已经解决了,怪我粗心了,原来是MessageService.class.php中,第二个header()的分号写成了冒号,晕死啊!

我的错误跟你的一样,但是MessageService.class.php并没有使用header()呀??

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值