用于学习目的 我想做一个非常简单的聊天页面
无需登录 没有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? 谢谢你提前。
答案 0 :(得分:1)
学习如何编写聊天程序很不错,但我的建议是首先需要使用正确的工具来完成工作。
虽然学习如何烤苹果派很好,但你也不需要随之种植苹果树。
使用库来帮助您使事情更简洁,并专注于您的项目真正重要的事情,而不是围绕它的问题。例如,您的XHR的jQuery将是一个良好的开端。
在处理XHR时,Javascript调试器是必须的。我建议Chrome使用开发者工具。我个人认为任何其他工具都无法在功能和实用性方面超越它。
使用数据库存储数据。文件不是一个好主意。
PHP手册中有好示例;向他们学习。
您似乎并不完全掌握PHP语法,并混合服务器端和客户端代码(同样,您在GET URL中编写Javascript代码?您应该有Javascript错误,因为您的报价甚至没有被转义) 。由于聊天程序需要很好地理解它们,所以首先从一些基本测试开始。