• 技术文章 >后端开发 >php教程

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

    2016-06-23 13:34:28原创386
    *******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;$iclose_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  
    主要就是回调函数出问题, 注释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()呀??

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    上一篇:php或java毕业设计 下一篇:如何让PHP以root权限执行系统命令
    Web大前端开发直播班

    相关文章推荐

    • 详细介绍PHP的session反序列化漏洞• PHP常用六大设计模式(总结分享)• 注册页面之前先验证用户名是否存在的php代码_PHP• php笔记之常用文件操作_PHP• 一个分页的论坛_PHP

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网