Cвой пишем PHP чат.

Пишем свой чат на PHP

[ скачать .zip ]

задался я мыслью, написать подобие чата. как и все великое, начнется это с простых вещей....

  1. чат будет на фреймах -
  2. будет юзать mySQL, потому как очень просто все тогда получится
  3. в чате не будет регистрации, а следовательно админов и т.д., для простоты реализации и понятности...
итак, начнем.

заглав пага у нас будет index.html куда и будет попадать юзер при заходе на chat.test1.ru допустим ):
index.html

обьясняю - это страница фреймсет - набор фреймов,
  1. первый фрейм, с нулевой высотой - "драйвер"...он будет перегружатся каждые...ну скажем 10 секунд, и проверять новые сообщения...пользователей убирать по тайм ауту и т.д.
  2. второй фрейм ссылается на input.php..простенький скрипт, который будет принимать мессаги от юзера и пиндюрить их в БД нашу (кстати...)
  3. третий - список ников...с js ссылками на вставку в input поле
  4. ну и четвертый - где будут выводится все сообщения....

для чата нам понадобятся всего две таблицы (да, да ))):

тут кажется должно быть просто:
chat - три поля: user

ну еще подготовимся...чтобы уж быть во всеоружие напишем...functions.php всего с парой функций )
functions.php

первая просто выводит в страничку тег META REFRESH для перезагрузки какого либо фрейма, через указанный тайм, на указанный урл вторая возвращает читаемую строку из UNIX TIMESTAMP....
поехали дальше?

далее...начнем наш нелегкий труд...
напишем скриптик, который будет вызыватся для каждого скриптика...
в нем мы будет

  1. коннектится к БД
  2. начинать сессию
  3. ставить текущему юзеру нашего чата, что он еще тут
  4. и брать его статсы
  5. переводить фокус на окошко ввода....
фух...
global.php

далее, а очереди dummy.php, чуть ли не самый хлавный тут скрипт, в его задачу входит

  1. перегружать себя через каждые 10 секунд
  2. удалять из таблицы чата старые сообщения
  3. удалять юзеров по таймауту
  4. перегружать соответсвующие фреймы
все просто:
dummy.php

следующий на очереди input.php скрипт подхватывающий сообщения юзера и заносящий их в БД...
input.php

далее nicklist.php
здесь мы просто выводим кто сейчас у нас есть! если кого нет, то я не виноват )
users.php

было бы логично тут же проверять старых юзеров, но я как то забыл об этом ))))

ну и наконец! main.php!!! который:

  1. логинит только что пришедшего
  2. выводит сообщения для залогиненых
  3. разлогинивает
  4. ставит lastupdate для юзера (для проверки в dummy.php)
итак:
main.php

ну вот....все скрипты... ничего сложного ;)
Сайт создан в системе uCoz