Показать полную графическую версию : Чат на php
LEXX2002
04-04-2003, 18:46
Как давно я не был на этом форуме. Всем привет кого знаю.
Вопрос по php. Начал я писать чат, вроде не чего, нормально получается, но в последнее время стало раздражать этот «рефреш» для обновления сообщений, я раньше писал так: <meta http-equiv="refresh" content="8"; charset=windows-1251"> (это окно где все сообщение, или просто в народе, ОБЩАГ). Но когда много сообшений, или смайликов, то это уже отстой полнейший. Знаю есть чаты которые показывают новые сообщений без обновление страницы. Так вот, КАК ЭТО СДЕЛАТЬ???
сложно, http://php.spb.ru/chat/
LEXX2002
05-04-2003, 17:02
ivank
Блин тоже мне помог, я этот чат на пхп груп уже год назад скачивал, он мне не нравиться, и хочется СВОЙ, родной сделать, что бы каждую фифочку знать. Темболее что там нельзя удалить эту шапку с ссылкой на их сайт.
Я тут долго размышлял, как это сделать. НЕ как же не возможно принимать сообщение без обновления. После долгих размышлений я вроде догадался как это сделать. Существует невидимый фрейм, который все время обновляется, или хотя бы раз в 5 секунд. В этом фрейме есть скрипт. Если приходит новое сообщение (или вообще что приходит), он его кидает в общаг.
Не знаю как на других чатая, я попробую пойти по этому пути. Если кто знает ТОЧНО как это сделать то не в падлу напишите.
XXXX Pro
05-04-2003, 19:11
Если я не ошибаюсь, такое можно реализовать только в виде Java-апплета. С помощью Perl или PHP ничего такого не получится (максимум, что можно сделать - прописать соответствующий Cache-control, чтобы смайлики грузились один раз, а потом - только быстро обновлялись, но и то - вряд ли), разве что сработает ваша идея про невидимый frame, но возникнет другая проблема: этот чат не будет работать при отключенных Java-Scriptах.
LEXX2002
05-04-2003, 19:56
Уже начал писать скрипт, только столкнулся с проблемой (точнее проблемы нет, просто я не знаю как это сделать).
Существует два фрейма
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 которая выясняет возможности брайзера.
Исправлено: LEXX2002, 19:59 5-04-2003
конечно, никаких...
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 - просто и наглядно...
Исправлено: Sulako, 21:51 5-04-2003
LEXX2002
Я ссылку дал как на пример реализации непрерывного соединения. Это идеологичесски правильнее чем делать со скрытым фрецмом.
LEXX2002
05-04-2003, 22:04
Так вот я и спрашиваю КАК сделать это «непрерывное соединение», как обновить страницу без обновления ( теперь надо осмыслить чего написал :-) ), Я то не знаю как это реализовано в чатах. Пришлось своё придумывать.
Я сегодня ещё раз поставил этот чат, который с примера , так вот там все таки есть какой то рефреш.
На счёт старых сообщений, в примере это проблема решена очень просто, ОНА НЕ КАК НЕ РЕШЕНА. На протяжении всей сессии все сообщения видны.
И ещё, что такое innerHTML/innerText . Некогда о таком не слышал, это что?? язык, технология?? Что это и с чем это едят.
innerHTML и innerText - это такие свойства элементов HTML в JavaScript, означают текст внутри элемента.
например, body.innerHTML содержит весь текст документа, который внутри тега <body></body>, и с ним можно вытворять что угодно ;) Разница между innerHTML и innerText в том, что при использовании innerHTML можно добавлять кроме текста еще и теги HTML.
LEXX2002
28-04-2003, 23:40
Извиняюсь за долгую задержку, уезжал,
Sulako
parent.chat.document.write(text) – работает, только проблема, все что было до этого в фрейме chat удаляются, а мне этого не надо, у меня там ещё скрипт, как сделать что бы дописывало, а не перезаписывало. И еще, можно что бы это командой писать в отведённый для неё место а не в конец документа, так как когда она пишет в конец документа, а там возникают проблемы со скроллингом.
http://www.x7chat.com супер новейший чат
Ну что сделал чат то? А то ты принципиально не в ту сторону движесся! Механизм реализован по другому совсем! Если интересно я тебе расскажу как magway2030@mail.ru!:gigi:
LEXX2002
28-01-2004, 20:48
Да вроде уже сам додумался как делается это, скриптом открывается сокет, тем самым создается непрерывное соединение, но чат потерпел крах по очень простой причине, на бесплатных хостингах в каждый фрейм помещается банер что портит скрипт и конечно внешний вид :( а денежек на платный хостинг нет. В локалке работАЛ простой чат на рефреше, там то нет проблем со скоростью и некто кроме своих не видит так что над функциональностью не работал. А вообще IRC рулит, html чаты меня в последнее время раздражают.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.