【问题标题】:simple ajax chatting简单的ajax聊天
【发布时间】:2011-07-31 03:17:40
【问题描述】:

我想做一个很简单的聊天页面

无需登录 不使用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>

我希望每次发送消息时,消息都会添加到当前文档中,但奇怪的症状是它什么也不返回。

【问题讨论】:

  • 那些fgets($logdata);怎么了??
  • 你似乎混合了 PHP 和 Javascript。例如,$display += fgets($logdata); 应该是 $display .= fgets($logdata);document.write($display); 应该是 echo $display;。只是一个想法。

标签: php html ajax chat


【解决方案1】:

学习如何编写聊天程序很好,但我的建议是,您首先需要为工作使用正确的工具。

虽然学习如何烤苹果派很不错,但您不需要同时种植一棵苹果树。

  1. 使用库可以帮助您使事情变得更简洁,并专注于对您的项目真正重要的事情,而不是围绕它的具体细节。例如,为您的 XHR 设置jQuery 将是一个好的开始。

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

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

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

  5. 您似乎没有完全掌握 PHP 语法,并且混合了服务器端和客户端代码(另外,您正在 GET url 中编写 Javascript 代码?您应该有 Javascript 错误,因为您的引号甚至没有转义) .由于聊天程序需要很好地理解这两者,所以先从一些基本测试开始。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-05-06
    • 2016-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多