Чат. Не могу сделать список пользователей и обновление страницы.

Bright

Guest
Чат. Не могу сделать список пользователей и обновление страницы.

Подскажите как сделать чат. Только не давайте мне готовые, просто скажите какие функции использовать для чего. А дальше я сам хочу сделать.
Я могу читать/писать в файл. Могу сделать вывод строки "В чате n человек"
Но я не знаю как:
-вывести всех по именам
-сделать обновление страницы (каждые 10-15 сек.)
-и всё это собрать в один файл. (не считая файла, где вход в чат)
Помогите.
Заранее спасибо.
 

Sefrik

Guest
Думаю, что прочитав твое сообщение тебе никто не ответит, т.к. ты запросил слишком много информации. Это целый раздел про то, как написать чат.

Люди, которые здесь бывают часто умеют писать чат. И они научились на примерах (готовых скриптах).

Лучше тебе скачать 4-5 готовых скриптов и покопаться в них. Так будет быстрее и лучше для тебя. А если не разберешься с каким-то фрагментом кода, тогда пиши...

Удачи!
 

Фанат

oncle terrible
Команда форума
-вывести всех по именам
для того, чтобы вывести - надо сначала записать. в файл.
-сделать обновление страницы (каждые 10-15 сек.)
html тег meta refresh
если тебе не знакомо это слово - набери в гугле - тебе сразу выдаст пример
-и всё это собрать в один файл. (не считая файла, где вход в чат)
в один файл это собирать не надо. обычно, чат классический состоит из трёх фреймов.
в одном обновляются сообщения, во втором - список, в третьем - строка для ввода
 

Bright

Guest
простите, я кое-что не уточнил.
я могу записать в файл имена юзеров, но как его сортировать?
как удалить из него имена тех, кто вышел из чата?
правильно мыслю - надо использовать
strstr() для поиска имени
str_replace() для замены имени или удаления?
просто скажите "да" или "нет"
а на два вопроса уже ответил Фанат, за что ему большое спасибо.
 

Фанат

oncle terrible
Команда форума
В файл надо писать не только имя, но и время - когда он запрашивал чат.
при выводе надо отсекать всех, у кото время вышло (минуты, я думаю, за глаза будет.) и записывать в файл снова только тех кто активен.
не забудь почитать про [m]flock[/m]
 

Bright

Guest
ладно.
но я завалился на другом.
есть enter.html (вход в чат) - в нем текстовое поле (форма имя nick метод post). передает инфу в чат. приходится передавать в окно чата (chat.php) в нем фреймы - (mesages.php - сообщения, list.php - юзеры и write.php - редактилка)
так вот во write.php, есть такая штука "Ваш ник: $nick" но так как передавать данные приходится chat.php, то я во writ'e инклудю (includ(); ) но я не получаю значение переменной во write.php!
то есть, я проверял, в chat.php всё попадает, но мне надо засунуть значение переменной nick во write.php. Помогите. Я пробовал всё, как только не делал - результат 0. я по-любому что-то делаю не так. но что?
 

Taraskin

Guest
Извини конечно, но лучше чат делать на базе MySQL, PostgreSQL ...
На текстовых файлах тоже можно, но ето не так динамично.
 

Bright

Guest
что-то мне до конца не понятно.
я тот фак читал уже.
я понял, что там написано, но может не правильно понял?
смотрите: если данные переданны в chat.php(в котором фреймы). Значит работа chat.php заканчивается как только он создаст фреймы и получит данные.
В созданном фрейме есть write.php, который должен начать свою работу как только загрузится в фрейм. и завершить только после выполнения всех условий. Правильно?

Это теория была. А на практике: для теста я написал в chat.php $nick="текст";
во write.php я написал include "chat.php";
все сработало. переменная $nick уже во writ'e стала равна "текст" !
В общем я выяснил что инклудом передается только текст! Если в chat.php написать
$a="2";
$nick = $a;
значение $nick = 2 во write.php не будет.
почему???
(про мануал не говорите, я его смотрел. просто сами объясните почему так и как ПРАВИЛЬНО пользоваться инклудом)

-~{}~ 29.06.05 09:36:

или вариант:
как при нажатии кнопки submit открывать окно chat.php а данные посылать в list.php и write.php?
 

Serguitar

Новичок->продвинутый
Bright
(про мануал не говорите, я его смотрел. просто сами объясните почему так и как ПРАВИЛЬНО пользоваться инклудом)
Тебе ничего не объяснить. Ты взялся исполнить невыполнимую для тебя задачу. Твоих знаний просто недостаточно. Серьёзно. Скачай исходник какого-нибудь простенького чата, посмотри ПОСТРОЧНО что там и как. И не морочь народу голову какими-то инклудами, которые НУ ВООБЩЕ здесь не нужны.
SiMM
Фанат
Бесполезно, имхо, ему что-то объяснять. После того, как он решит эту проблему с ненужным нафиг инклудом, появится куча других вопросов такого же плана.
Сори за оффтоп, но этой теме, имхо, только там и место.
 

SelenIT

IT-лунатик :)
...работа chat.php заканчивается как только он создаст фреймы и получит данные
Неверно. Когда скрипт что-то "создает" (т.е. выводит), никаких данных он уже не получает - все уже давно получено и использовано. Данные, отправленные позже, получат уже другие скрипты.
как при нажатии кнопки submit открывать окно chat.php...
Зачем? Все, что нужно, по идее уже открыто.
...а данные посылать в list.php и write.php?
Достаточно послать данные в один из них (с помощью атрибута target у формы). Скрипт внесет нужные изменения, а второй фрейм через какое-то время обновится и эти изменения подхватит.
 

Bright

Guest
Тебе ничего не объяснить. Ты взялся исполнить невыполнимую для тебя задачу. Твоих знаний просто недостаточно. Серьёзно. Скачай исходник какого-нибудь простенького чата, посмотри ПОСТРОЧНО что там и как. И не морочь народу голову какими-то инклудами, которые НУ ВООБЩЕ здесь не нужны.
SiMM
Фанат
Бесполезно, имхо, ему что-то объяснять. После того, как он решит эту проблему с ненужным нафиг инклудом, появится куча других вопросов такого же плана.
Сори за оффтоп, но этой теме, имхо, только там и место.
извините что отнимаю ваше время. :(
я пытаюсь сделать, пытаюсь разными способами.
для тебя некоторые из них - откровенно ТУПЫЕ.
но не для меня.
я учусь. учу пхп.
я еще не знаю пхп.
понимаешь?
люди. учатся. в. процессе. работы.
именно когда стоит конкретная задача и надо найти её решения.
я читаю мануал, факи, спрашиваю вас - делаю всё чтобы научиться.
разве это плохо.
я ж не прошу тупо сделать что-то за меня.
А тем кто мне помогает, я очень благодарен.
Особенно Фанату (он реально ОБЪЯСНЯЕТ и ПОМОГАЕТ.)
когда я буду знать то, что спросят другие новички - первая же моя мысль: "надо помочь", а не "бесполезно ему объяснять"

и прошу прощения за то что достал Serguitar'a своими вопросами. Ну просто жить ему не даю :)
 

SiMM

Новичок
> люди. учатся. в. процессе. работы.
над простыми задачами. А потом уже, набрав багаж знаний, обращаются к более сложным. Так ты сэкономишь себе просто массу времени, если хочешь сделать чат более или менее качественным.
 

Bright

Guest
ладно, это уже переходит во флейм...
спасибо всем за помощь.
дальше попытаюсь сам...
 
Сверху