Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
_piton
Зарегистрирован: 11.03.2005 Сообщения: 8
|
Добавлено: Пт Мар 11 2005 15:16 Заголовок сообщения: чат на PHP+JS. Кто виноват? |
|
|
Я тут пытаюсь написать чат на PHP (в целях самообразования ) но че то оно глючит. Конкретно: все приходящие сообщения $_SERVER{'QUERY_STRING'} сохраняются в файл. Если строка запроса пуста - скрипт (php) только читает из файла fgets() предыдущие сообщения. Сообщение на отсылку формируется (js) так: parent.chat_frame.location.href="http://127.0.0.1/chat.php?"+query_string; Если надо просто обновить окно чата: chat_frame.location.href=".../chat.php"
Проблема: посылаем сообщение - все ок - оно и в файле и на экране. Посылаем пустой запрос - последнее сообщение на экране отсутствует! Еще раз посылаем - оно появляется. А если выводить это в отдельное окно ( а не в frame) и сразу после отправки, убрав из URL строку запроса, нажать обновить - оно появляется. Ну и как это понимать? И чего можно сделать? Подскажите кто-нибудь pls!
З.Ы. А в Mozilla у меня почему-то не работает parent.chat_frame.location.href="http://127.0.0.1/chat.php?"+query_string; Содержимое фрейма не меняется. Тоже загадка, блин! |
|
Вернуться к началу |
|
|
_piton
Зарегистрирован: 11.03.2005 Сообщения: 8
|
Добавлено: Сб Мар 12 2005 13:47 Заголовок сообщения: |
|
|
Вот на всякий случай код chat.php (всякий диагностический output и html обрамление я здесь убрал)
Код: |
<?php
function writedown($message)//функция записи в файл
{
$fp=fopen("chat/chat.txt", "a");
if ($fp)
{
fputs($fp, $message."\n");
fflush($fp);// На всякий случай форсируем запись из буфера в файл
fclose($fp);
};
};
//-----------------------------------------------------
function readout()//функция чтения из файла
{
$fp=fopen("chat/chat.txt", "r");
if ($fp)
{
while (!feof($fp))
{
echo(urldecode(fgets($fp))."<br>");
};
fclose($fp);
}
else
{
echo "Error opening file!";
};
};
//--------------------------------------------
//если строка запроса пуста пропускаем запись в файл
if ( (!is_null($_SERVER{'QUERY_STRING'}))&&(strlen($_SERVER{'QUERY_STRING'})) )
{
writedown($_SERVER{'QUERY_STRING'});
};
//читаем из файла в любом случае
readout();
?>
|
Вот и все. |
|
Вернуться к началу |
|
|
|