Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Вебмастеру (http://forum.oszone.net/forumdisplay.php?f=22)
-   -   Чат на php (http://forum.oszone.net/showthread.php?t=31359)

LEXX2002 04-04-2003 18:46 214844

Как давно я не был на этом форуме. Всем привет кого знаю.
Вопрос по php. Начал я писать чат, вроде не чего, нормально получается, но в последнее время стало раздражать этот «рефреш» для обновления сообщений, я раньше писал так: <meta http-equiv="refresh" content="8";  charset=windows-1251"> (это окно где все сообщение, или просто в народе, ОБЩАГ). Но когда много сообшений, или смайликов, то это уже отстой полнейший. Знаю есть чаты которые показывают новые сообщений без обновление страницы. Так вот, КАК ЭТО СДЕЛАТЬ???

ivank 05-04-2003 08:27 214845

сложно, http://php.spb.ru/chat/

LEXX2002 05-04-2003 17:02 214846

ivank
Блин тоже мне помог, я этот чат на пхп груп уже год назад скачивал, он мне не нравиться, и хочется СВОЙ, родной сделать, что бы каждую фифочку знать. Темболее что там нельзя удалить эту шапку с ссылкой на их сайт.



Я тут долго размышлял, как это сделать. НЕ как же не возможно принимать сообщение без обновления. После долгих размышлений я вроде догадался как это сделать. Существует невидимый фрейм, который все время обновляется, или хотя бы раз в 5 секунд. В этом фрейме есть скрипт. Если приходит новое сообщение (или вообще что приходит), он его кидает в общаг.
Не знаю как на других чатая, я попробую пойти по этому пути. Если кто знает ТОЧНО как это сделать то не в падлу напишите.



XXXX Pro 05-04-2003 19:11 214847

Если я не ошибаюсь, такое можно реализовать только в виде Java-апплета. С помощью Perl или PHP ничего такого не получится (максимум, что можно сделать - прописать соответствующий Cache-control, чтобы смайлики грузились один раз, а потом - только быстро обновлялись, но и то - вряд ли), разве что сработает ваша идея про невидимый frame, но возникнет другая проблема: этот чат не будет работать при отключенных Java-Scriptах.

LEXX2002 05-04-2003 19:56 214848

Уже начал писать скрипт, только столкнулся с проблемой (точнее проблемы нет, просто я не знаю как это сделать).
Существует два фрейма
Chat – где показываться все сообщений
SAY – постоянно обновляемый фрейм.

Пишу так (фрейм say):

<script language="JavaScript" type="text/javascript">

function say_sc(text) {parent.chat.document += text}
say_sc(‘<? Php $new_talk ?>’)


</script>

никаких результатов (конечно никаких, неправильно написал, плохо знаю скрипт).
Какой объект надо создать что бы его невидно было, или …………………. Ну поняли??, как сделать что бы функция say_sc() писала новый сообщения в фрейме chat.

XXXX Pro
На счет отключения скриптов. К сожалению УЖЕ поставил ограничитель. В чат могут зайти только с брайзером MSIE, и как бы опера не подделывалась под IE её не пускаю.
Хотя я помню есть функция в PHP которая выясняет возможности брайзера.


[s]Исправлено: LEXX2002, 19:59 5-04-2003[/s]

Sulako 05-04-2003 21:28 214849

конечно, никаких...
parent.chat.document += text - это чушь ;)

parent.chat.document.write(text) - вот так надо бы...

вот пример, у меня работает...

<iframe name="chat"></iframe>
<input id=txt type="text">
<input type=button value="Послать" onclick="chat.document.write(txt.value)">

А вообще, это не совсем корректно...как думаешь убирать просроченные сообщения? Вообще есть несколько способов писать в текст документа... я бы лично действовал через свойства innerHTML/innerText - просто и наглядно...


[s]Исправлено: Sulako, 21:51 5-04-2003[/s]

ivank 05-04-2003 21:40 214850

LEXX2002
Я ссылку дал как на пример реализации непрерывного соединения. Это идеологичесски правильнее чем делать со скрытым фрецмом.

LEXX2002 05-04-2003 22:04 214851

Так вот я и спрашиваю КАК сделать это «непрерывное соединение», как обновить страницу без обновления ( теперь надо осмыслить чего написал :-) ), Я то не знаю как это реализовано в чатах. Пришлось своё придумывать.

Я сегодня ещё раз поставил этот чат, который с примера , так вот там все таки есть какой то рефреш.

На счёт старых сообщений, в примере это проблема решена очень просто, ОНА НЕ КАК НЕ РЕШЕНА. На протяжении всей сессии все сообщения видны.

И ещё, что такое innerHTML/innerText . Некогда о таком не слышал, это что?? язык, технология?? Что это и с чем это едят.


Sulako 05-04-2003 22:54 214852

innerHTML и innerText - это такие свойства элементов HTML в JavaScript, означают текст внутри элемента.
например, body.innerHTML содержит весь текст документа, который внутри тега <body></body>, и с ним можно вытворять что угодно ;) Разница между innerHTML и innerText в том, что при использовании innerHTML можно добавлять кроме текста еще и теги HTML.

LEXX2002 28-04-2003 23:40 214853

Извиняюсь за долгую задержку, уезжал,
Sulako
parent.chat.document.write(text) – работает, только проблема, все что было до этого в фрейме chat удаляются, а мне этого не надо, у меня там ещё скрипт, как сделать что бы дописывало, а не перезаписывало. И еще, можно что бы это командой писать в отведённый для неё место а не в конец документа, так как когда она пишет в конец документа, а там возникают проблемы со скроллингом.

Guest 19-12-2003 06:11 214854

http://www.x7chat.com супер новейший чат

Guest 28-01-2004 17:48 214855

Ну что сделал чат то? А то ты принципиально не в ту сторону движесся! Механизм реализован по другому совсем! Если интересно я тебе расскажу как magway2030@mail.ru!:gigi:

LEXX2002 28-01-2004 20:48 214856

Да вроде уже сам додумался как делается это, скриптом открывается сокет, тем самым создается непрерывное соединение, но чат потерпел крах по очень простой причине, на бесплатных хостингах в каждый фрейм помещается банер что портит скрипт и конечно внешний вид :( а денежек на платный хостинг нет. В локалке работАЛ простой чат на рефреше, там то нет проблем со скоростью и некто кроме своих не видит так что над функциональностью не работал. А вообще IRC рулит, html чаты меня в последнее время раздражают.


Время: 13:28.

Время: 13:28.
© OSzone.net 2001-