|
|
|
|
|
для: bronenos
(09.05.2007 в 20:45)
| | bronenos!!! Огромнейшее тебе СПАСИБО! Вывод сообщений без рефрэша сделан! | |
|
|
|
|
|
|
|
для: Blizard
(09.05.2007 в 20:29)
| | зачем трудности
document.getElementById(object).innerHTML = data;
еще в том файле поставь там где запрос шлеш в методе open вместо file - file+'?'+Math.random() | |
|
|
|
|
|
|
|
для: Blizard
(09.05.2007 в 20:29)
| | повторяю...
1. проводи текст через htmlspecialchars от некоторых хитрецов
2. chat.txt открывай через режим a (add), а не r (read)
насчет списка сейчас посмотрю | |
|
|
|
|
|
|
|
для: bronenos
(09.05.2007 в 16:50)
| | После избавления от xml:
send.php
<HTML>
<HEAD>
</HEAD>
<BODY>
<FORM NAME="sendform" action="add.php" method="post">
<?
error_reporting(0);
$login=$_GET['login'];
?>
<INPUT TYPE="hidden" VALUE="<? echo $login;?>" NAME="login">
<INPUT TYPE="text" NAME="who" STYLE="width:15%">
<INPUT TYPE="text" NAME="text" STYLE="width:75%" >
<INPUT TYPE="submit" VALUE="Сказать">
</FORM>
<FORM ACTION="del.php" METHOD="get" NAME="closeform" TARGET="_parent">
<INPUT TYPE="hidden" NAME="login" VALUE="<? echo $login;?>">
<INPUT TYPE="submit" VALUE="Выход">
</FORM>
</HTML>
|
add.php
<?php
$text=$_POST['text'];
$who=$_POST['who'];
$login=$_POST['login'];
$file=fopen('chat.txt','r');
fwrite($file,"\n <B>".$login." => ".$who."</B> : ".$text."<small> (".date("H:i:s").") </small>");
fclose($file);
header("Location:send.php?login=".$login."&who=".$who."&text=".$text);
?>
|
text.php
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<script type="text/javascript"><!--
function ajaxRead(file){
var Obj = null;
if(window.XMLHttpRequest){
Obj = new XMLHttpRequest();
} else if(window.ActiveXObject){
Obj = new ActiveXObject("Microsoft.XMLHTTP");
} else {
return;
}
Obj.onreadystatechange = function(){
if(Obj.readyState == 4){
updateObj('Obj', Obj.responseText);
}
}
Obj.open ('GET', file, true);
Obj.send ('');
}
function updateObj(object, data){
document.getElementById(object).firstChild.data = data;
setTimeout("ajaxRead('chat.txt')",1000);
}
</script>
</head>
<body onload="ajaxRead('chat.txt')">
<p id="Obj">
=
</p>
</body>
</html>
|
выводит только один раз после загрузки то что есть в файле | |
|
|
|
|
|
|
|
для: Rembrant
(09.05.2007 в 16:20)
| | я тебе свои дам участки | |
|
|
|
|
|
|
|
для: bronenos
(09.05.2007 в 15:43)
| | да причина не в этом, жаль что в нете нет нигде сайта где бы можно было узнать всё об ajax и как он применяется в написании чатов | |
|
|
|
|
|
|
|
для: Rembrant
(09.05.2007 в 14:18)
| | 1. не очень хорошо передавать ник через GET
2. посоветовал бы применять htmlspecialchars()
3. чтоб записать сообщение открывай файл в режиме a, а не r
4. закрываеш $dfile, которого не открывал | |
|
|
|
|
|
|
|
для: Rembrant
(09.05.2007 в 13:47)
| | Нижний фрейм send.php
<HTML>
<HEAD>
</HEAD>
<BODY>
<FORM NAME="sendform" action="add.php" method="post">
<?
error_reporting(0);
$login=$_GET['login'];
?>
<INPUT TYPE="hidden" VALUE="<? echo $login;?>" NAME="login">
<INPUT TYPE="text" NAME="who">
<INPUT TYPE="text" NAME="text">
<TD WIDTH="15%"><INPUT TYPE="submit" VALUE="Сказать">
</FORM>
<FORM ACTION="del.php" METHOD="get" NAME="closeform" TARGET="_parent">
<TD WIDTH="20%">
<INPUT TYPE="hidden" NAME="login" VALUE="<? echo $login;?>">
<INPUT TYPE="submit" VALUE="Выход">
</FORM>
</BODY>
</HTML>
|
Обработчик сообщений add.php:
<?php
$text=$_POST['text'];
$who=$_POST['who'];
$login=$_POST['login'];
$file=fopen('chat.txt','r');
fwrite($file,"\n <B>".$login." => ".$who."</B> : ".$text."<small> (".date("H:i:s").") </small>");//пишу лог
fclose($file);
$myfile=fopen('data.xml','w');
fwrite($myfile,'<?xml version="1.0" encoding="windows-1251"?><root><data>'.$text.'</data></root>');//сообщение
fclose($dfile);
header("Location:send.php?login=".$login."&who=".$who."&text=".$text);
?>
|
Фрейм сообщений text.php:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<script type="text/javascript">
function ajaxRead(file){
var xmlObj = null;
if(window.XMLHttpRequest){
xmlObj = new XMLHttpRequest();
} else if(window.ActiveXObject){
xmlObj = new ActiveXObject("Microsoft.XMLHTTP");
} else {
return;
}
xmlObj.onreadystatechange = function(){
if(xmlObj.readyState == 4){
updateObj('xmlObj', xmlObj.responseXML.getElementsByTagName('data')[0].firstChild.data);
}
}
xmlObj.open ('GET', file, true);
xmlObj.send ('');
}
function updateObj(obj, data){
document.getElementById(obj).firstChild.data = data;
}
</script>
</head>
<body>
<h1>мой чат</h1>
<p>Здесь ссылкой определяю изменился ли файл data.xml</p>
<p id="xmlObj">
Это данные по умолчанию. <a href='data.xml' title="Обзор данных XML файла." onclick="ajaxRead('data.xml');
this.style.display='none'; return false">Обзор введенного сообщения в xml файл</a>
</p>
</body>
</html>
|
| |
|
|
|
|
|
|
|
для: bronenos
(09.05.2007 в 13:32)
| | Войди в асе в сеть. У меня 719 контактов. Если ты невидим то мне тебя час придется искать =) | |
|
|
|
|
|
|
|
для: Rembrant
(09.05.2007 в 13:23)
| | зачем тебе этот XML нужен?
в асю кинь исходные | |
|
|
|
|