Cвой пишем PHP чат.
Пишем свой чат на PHP
[ скачать .zip ]
задался я мыслью, написать подобие чата. как и все великое, начнется это с простых вещей....
- чат будет на фреймах -
- главный, с сообщениями
- ввод, где будет вводится текст
- список ников, понятно
- и..фрейм "драйвер" всего этого дела )
- будет юзать mySQL, потому как очень просто все тогда получится
- в чате не будет регистрации, а следовательно админов и т.д., для простоты реализации и понятности...
итак, начнем.
заглав пага у нас будет index.html куда и будет попадать юзер при заходе на chat.test1.ru допустим ):
index.html
обьясняю - это страница фреймсет - набор фреймов,
- первый фрейм, с нулевой высотой - "драйвер"...он будет перегружатся каждые...ну скажем 10 секунд, и проверять новые сообщения...пользователей убирать по тайм ауту и т.д.
- второй фрейм ссылается на input.php..простенький скрипт, который будет принимать мессаги от юзера и пиндюрить их в БД нашу (кстати...)
- третий - список ников...с js ссылками на вставку в input поле
- ну и четвертый - где будут выводится все сообщения....
для чата нам понадобятся всего две таблицы (да, да ))):
тут кажется должно быть просто:
chat - три поля:
- номер юзера (хотя надо было бы заносить имя а не ссылку на таблицу юзеров, так как при выходе стирается запись из user на которую будет ссылатся chat, ну да не страшно....
- сам текст сообщения
- и время его...
user
- имя,
- номер,
- последняя активность (для определения диссконнекта)
- последний апдейт сообщений (чтобы проверять на наличие новых)
ну еще подготовимся...чтобы уж быть во всеоружие
напишем...functions.php всего с парой функций )
functions.php
первая просто выводит в страничку тег META REFRESH для перезагрузки какого либо фрейма, через указанный тайм, на указанный урл
вторая возвращает читаемую строку из UNIX TIMESTAMP....
поехали дальше?
далее...начнем наш нелегкий труд...
напишем скриптик, который будет вызыватся для каждого скриптика...
в нем мы будет
- коннектится к БД
- начинать сессию
- ставить текущему юзеру нашего чата, что он еще тут
- и брать его статсы
- переводить фокус на окошко ввода....
фух...
global.php
далее, а очереди dummy.php, чуть ли не самый хлавный тут скрипт,
в его задачу входит
- перегружать себя через каждые 10 секунд
- удалять из таблицы чата старые сообщения
- удалять юзеров по таймауту
- перегружать соответсвующие фреймы
все просто:
dummy.php
следующий на очереди input.php
скрипт подхватывающий сообщения юзера и заносящий их в БД...
input.php
далее nicklist.php
здесь мы просто выводим кто сейчас у нас есть!
если кого нет, то я не виноват )
users.php