模仿韓順平老師做的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"):
這種錯誤,提示應該很明顯吧