Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
_piton
Зарегистрирован: 11.03.2005 Сообщения: 8
|
Добавлено: Пт Мар 11 2005 15:12 Заголовок сообщения: чат на 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; Содержимое фрейма не меняется. Тоже загадка, блин! |
|
Вернуться к началу |
|
|
Moby
Зарегистрирован: 19.11.2004 Сообщения: 268
|
Добавлено: Сб Мар 12 2005 09:32 Заголовок сообщения: |
|
|
ты думаешь на этом форуме сборище медиумов и экстрасенсов??? ну так почему ты считаешь что мы в состоянии решить твою проблему не видя ни строчки кода... chat.php в студию! в частности ту его часть, котороая отвечает за обработку запроса _________________ Профи - это оборзевший ламмер |
|
Вернуться к началу |
|
|
_piton
Зарегистрирован: 11.03.2005 Сообщения: 8
|
Добавлено: Сб Мар 12 2005 13:42 Заголовок сообщения: |
|
|
По просьбам радиозрителей:
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();
?> |
Вот и все. |
|
Вернуться к началу |
|
|
Moby
Зарегистрирован: 19.11.2004 Сообщения: 268
|
Добавлено: Сб Мар 12 2005 13:58 Заголовок сообщения: |
|
|
во первых fflush - нахрен не нужна в твоём пример.
во-вторых... видимых причин описанных тобою глюков я не вижу, посему прихожу к умозаключению что дело всё в кешировании страниц... т.е. вызывая страницу без параметров твой браузер видит, что урла не поменялась и считает что контент страницы тоже не поменялся...
лекарство - надо отключать кеширование на страницы... а вот - хоть убей - не вспомню... есть какой то метатег на эту тему кажись.
кстати, твой подход к чату обсолютно не жизнедеятельный, но в качестве "для себя" вполне сгодится ;о) _________________ Профи - это оборзевший ламмер |
|
Вернуться к началу |
|
|
_piton
Зарегистрирован: 11.03.2005 Сообщения: 8
|
Добавлено: Сб Мар 12 2005 14:19 Заголовок сообщения: |
|
|
>кстати, твой подход к чату обсолютно не жизнедеятельный, но в качестве "для себя" вполне сгодится ;о)
Кинь pls ссылку на какую-нибудь стоящую инфу на тему чатостроительства и генерации динамического контента вообще (какие-нибудь шаблонные решения для разных ситуаций). Заранее спасибо! |
|
Вернуться к началу |
|
|
Moby
Зарегистрирован: 19.11.2004 Сообщения: 268
|
Добавлено: Сб Мар 12 2005 14:50 Заголовок сообщения: |
|
|
какую нить ссылку... ну ты магёшь... ёпть, ну набери в поисковике что нить вроде "как сделать чат"... если какие то конкретные вопросы появятся - обращайся, помогу чем смогу _________________ Профи - это оборзевший ламмер |
|
Вернуться к началу |
|
|
_piton
Зарегистрирован: 11.03.2005 Сообщения: 8
|
Добавлено: Сб Мар 12 2005 17:09 Заголовок сообщения: |
|
|
Дело оказалось действительно в кэшировании, добавление
<meta http-equiv="expires" content="Mon, 01 Jan 1990 00:00:00 GMT">
в начало php все исправило! Thanx! |
|
Вернуться к началу |
|
|
Pasat V.
Зарегистрирован: 19.03.2005 Сообщения: 13 Откуда: Chisinau
|
Добавлено: Чт Мар 24 2005 23:47 Заголовок сообщения: |
|
|
хммм
знаете когдато я тоже пытался чтото оригинальное сварганить... не банальное "яваскрипт-рефреш" а типа через флэш форму
забросил блин запутался
ктото пробовал "чатостроительсво" во флеши? _________________ Web foreva |
|
Вернуться к началу |
|
|
Moby
Зарегистрирован: 19.11.2004 Сообщения: 268
|
Добавлено: Ср Апр 06 2005 20:16 Заголовок сообщения: |
|
|
нее, дажа рядом не хадил, а в чём там смысл? _________________ Профи - это оборзевший ламмер |
|
Вернуться к началу |
|
|
|