Создание чата...

Обсуждение серверного программирования.

Модераторы: Duncon, Yurich

vitpanov
Сообщения: 100
Зарегистрирован: 18 сен 2005, 18:51
Откуда: Россия

21 сен 2005, 19:10

Создаю чат...Как забацать чтобы новая реплика выводилась сверху или снизу страницы???Помогите плиз!
Сомневаешься - не делай,
не сомневаешся - подумай!
Аватара пользователя
Oscar
Сообщения: 958
Зарегистрирован: 29 май 2004, 13:44
Откуда: Мюнхен (рожден в Киеве)
Контактная информация:

21 сен 2005, 20:22

vitpanov, "реплика" введённая пользователем сохраняется на сервере (файл, БД) и выдаётся всем пользователям.

Простейший пример.
index.html писал(а):<script>
function start() {
var d = new Date()
frames['output'].location='output.php?'+d.toGMTString()]
output.php писал(а):<?php
header("Expires: Mon, 05 Sep 2003 14:00:00 GMT")] = htmlspecialchars($line)."
\n";
}

for($i=count($temp)-1; $i>=count($temp)-30; $i--)
echo $temp[$i];
?>
input.html писал(а):
<form onSubmit="top.frames['in'].location='input.php?message='+this.message.value]
input.php писал(а):<?php
$handle=fopen('chat.dat', 'a')]."\n");
fclose($handle);
?>
empty.html - пустой
chat.dat - изначально пустой файл, в который записываются "реплики".
vitpanov
Сообщения: 100
Зарегистрирован: 18 сен 2005, 18:51
Откуда: Россия

24 сен 2005, 13:58

Oscar, Спасибо огромное за скрипт! А как установить допустим чтобы выводилось последние n-сообщений, и фразы выбирать чтобы они выводились сверху или снизу?????Еще раз большое спасибо!
Сомневаешься - не делай,
не сомневаешся - подумай!
Аватара пользователя
Oscar
Сообщения: 958
Зарегистрирован: 29 май 2004, 13:44
Откуда: Мюнхен (рожден в Киеве)
Контактная информация:

24 сен 2005, 17:45

vitpanov, скрипт, что я написал не такой уже и сложный, чтобы понять его и самому сделать то, что ты хочешь.
vitpanov
Сообщения: 100
Зарегистрирован: 18 сен 2005, 18:51
Откуда: Россия

24 сен 2005, 19:45

Oscar, Еще один вопрос... Если в файле-базе 30 сообщений (или более) разделить на 3 страницы (или более) в каждой из которых по 10 реплик...
Сомневаешься - не делай,
не сомневаешся - подумай!
Аватара пользователя
Oscar
Сообщения: 958
Зарегистрирован: 29 май 2004, 13:44
Откуда: Мюнхен (рожден в Киеве)
Контактная информация:

24 сен 2005, 19:48

vitpanov,
читаешь всё из файла в массив (output.php пишет в $temp)
и выводишь по десятку.
А зачем в чате страницы? ))
vitpanov
Сообщения: 100
Зарегистрирован: 18 сен 2005, 18:51
Откуда: Россия

24 сен 2005, 19:55

Oscar, Страницы просто так. Спасибо! А как замочить такую вещь чтобы при регистрации на e-mail пользователя отправлялось письмо с его паролем и логином?
Сомневаешься - не делай,
не сомневаешся - подумай!
Аватара пользователя
Oscar
Сообщения: 958
Зарегистрирован: 29 май 2004, 13:44
Откуда: Мюнхен (рожден в Киеве)
Контактная информация:

24 сен 2005, 20:19

vitpanov
Сообщения: 100
Зарегистрирован: 18 сен 2005, 18:51
Откуда: Россия

25 сен 2005, 19:58

Oscar,
Надо добавит в форму тэг. Ну это просто...
<script LAnGuAgE="JaVaScRiPt">function tag(tag){var n=document.fr.msg.value; document.fr.msg.value=n+tag;}</script>
URL
/URL
<textarea rows=10 cols=10></textarea>
А как сделать чтобы какую-нибудь фразу заменяла на другую???
С использованием php???
Сомневаешься - не делай,
не сомневаешся - подумай!
Аватара пользователя
Oscar
Сообщения: 958
Зарегистрирован: 29 май 2004, 13:44
Откуда: Мюнхен (рожден в Киеве)
Контактная информация:

25 сен 2005, 21:03

vitpanov,
во-первых, было бы неплохо, если бы ты давал работающий код (у тебя форма и имя для textarea отсутствуют).
во-вторых, я немного изменил то, что ты написал (так красивее)

Код: Выделить всё

<script LAnGuAgE="JavaScript">
  function tag(tag){
    document.fr.msg.value+=tag;
  }
</script>

[url=#][b]URL[/b][/url]
[url=#][b]/URL[/b][/url]
<form name="fr">
<textarea rows=10 cols=100 name="msg"></textarea> 
</form>
в-третьих, для вопросов по Яваскрипту есть отдельная ветка на форуме.
в-четвёртых, этот вопрос относится к чату? если нет - создай новую тему с понятным названием.

И наконец.
Нет, php использовать НЕ обязательно, хотя и можно.
Если хочешь, чтобы замена проводилать Яваскриптом:

Код: Выделить всё

<script LAnGuAgE="JavaScript">

  function myReplace(){

    document.fr.msg.value = document.fr.msg.value.replace(/test/, "XXX");

  }

  function myReplaceAll(){

    document.fr.msg.value = document.fr.msg.value.replace(/test/g, "XXX");

  }

</script>

[url=#][b]Replace FIRST "test" with "XXX"[/b][/url]



[url=#][b]Replace ALL "test" with "XXX"[/b][/url]



<form name="fr">
<textarea rows=10 cols=100 name="msg"></textarea> 
</form>
Обрати внимание, что ф-ция "String.replace" первым параметром принимает НЕ строку для замены, а так называемое "Регулярное выражение"!

Кроме того, что ты хочешь менять?
Если ты просто хочешь поместить написанное в тэги - можешь сделать следующее:

Код: Выделить всё

document.fr.msg.value = "[url]"+document.fr.msg.value+"[/url]";
-----

Если же тебе наоборот нужно преобразовывать этот псевдокод "" в реальную ссылку - то да, лучше это ... tr_replace
до навороченых ereg_replace , preg_replace
Ответить