simple ajax chatting
I want to make an very simple chatting page
no login required no sql going to be used
Only php, html and ajax is needed.
First, I made a
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>
and 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);
$displa开发者_开发百科y += 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>
I expect everytime I send a message, the message is added to current document but the weird symtom is that it returns nothing.
Learning how to write a chat program is nice, but my advice is that you need first to use the right tools for the job.
While it is nice to learn how to bake an apple pie, you don't need to also grow an apple tree along with it.
Use libraries to help you make things more concise, and focus on what's really important about your project, and not the nuts and bolt around it. For example, jQuery for your XHR would be a good start.
Javascript debuggers are a must when dealing with XHRs. I suggest Chrome with the developer tools. I personally don't think any other tool can beat it in terms of features and usefulness.
Use a database to store your data. Files are not a good idea.
There are good examples from the PHP manual; learn from them.
You seem to not entirely grasp the PHP syntax, and mix server side and client side code (also, you are writing Javascript code inside your GET url? you should have Javascript errors since your quotes are not even escaped). Since a chat program requires a good understanding of them two, start with some basic tests first.
精彩评论