简单的ajax聊天

时间:2011-07-31 03:17:40

标签: php html ajax chat

用于学习目的 我想做一个非常简单的聊天页面

无需登录 没有sql将被使用

只需要php,html和ajax 首先,我做了一个

chat.html ////////////////////////////////////////////////// ////////////////////////////////////////////////

<html>
<head>


<script type="text/javascript">
function chat()
{
var xmlhttp;
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }

else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }

xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    document.getElementById("chat").innerHTML=xmlhttp.responseText;
    }
  }
xmlhttp.open("GET","chatreturn.php?name=getElementById("name").value&data=getElementById("data").value",true);
xmlhttp.send();
}


</script>


</head>
<body>

<form>
Name: <input type="text" id="name" />
writing: <input type="text" id="data" />
<button onclick=chat() >
</form>
<div id=chat></div>
</body>
</html>

/////////////////////////////////////////////// ////////////////////////////////////////////////// / 和chatreturn.php

<html>
<head>
</head>
<body>
<?php

$logger = fopen("chatlog.txt","w");
$msg = $_GET["name"];
$msg += " " + $_GET["data"];
fwrite($logger,$msg);
fclose($logger);

$logdata = fopen("chatlog.txt","r");

$display += fgets($logdata);
$display += fgets($logdata);
$display += fgets($logdata);
$display += fgets($logdata);
$display += fgets($logdata);
$display += fgets($logdata);
$display += fgets($logdata);
$display += fgets($logdata);
$display += fgets($logdata);
$display += fgets($logdata);
$display += fgets($logdata);
$display += fgets($logdata);
$display += fgets($logdata);
$display += fgets($logdata);
$display += fgets($logdata);
$display += fgets($logdata);
$display += fgets($logdata);
$display += fgets($logdata);
$display += fgets($logdata);
$display += fgets($logdata);
$display += fgets($logdata);
$display += fgets($logdata);
$display += fgets($logdata);
$display += fgets($logdata);
$display += fgets($logdata);
$display += fgets($logdata);
$display += fgets($logdata);
$display += fgets($logdata);
document.write($display);
fclose($logdata );
?>

</body>
</html>

/////////////////////////////////////////////// ////////////////////////////////////////////////// /

我期待 每次我发送消息时,消息都会添加到当前文档中 但奇怪的symtom是它什么都不返回

anyadvice? 谢谢你提前。

1 个答案:

答案 0 :(得分:1)

学习如何编写聊天程序很不错,但我的建议是首先需要使用正确的工具来完成工作。

虽然学习如何烤苹果派很好,但你也不需要随之种植苹果树。

  1. 使用库来帮助您使事情更简洁,并专注于您的项目真正重要的事情,而不是围绕它的问题。例如,您的XHR的jQuery将是一个良好的开端。

  2. 在处理XHR时,Javascript调试器是必须的。我建议Chrome使用开发者工具。我个人认为任何其他工具都无法在功能和实用性方面超越它。

  3. 使用数据库存储数据。文件不是一个好主意。

  4. PHP手册中有示例;向他们学习。

  5. 您似乎并不完全掌握PHP语法,并混合服务器端和客户端代码(同样,您在GET URL中编写Javascript代码?您应该有Javascript错误,因为您的报价甚至没有被转义) 。由于聊天程序需要很好地理解它们,所以首先从一些基本测试开始。