iSlayter
> как всегда в своем репертуаре
Ы?
> а серьёзно - заморачиваться с обновлением нет смысла = почему бы тут аякс не использовать?
В построении чата есть несколько путей, а именно в организации "непрерывной" загрузки сообщений. Можно сделать просто set_time_limit(0) + flush() + запрос к бд каждую секунду. Такой чат сильно требователен к ресурсам, даже на десяти посетителях. Если рефрешить фрейм часто - тоже несладко, если даже 10 человек, это 10 запросов в секунду - нефиговая нагрузка. Поэтому при написании чата я пошел вот каким путем. Вход в чат организуется через обычную вебформу отправляющую данные в общий вебсервер (например Apache), и затем загружается страничка с чатом, она представляет собой два div'а overflow, т.е. появляется прокрутка как в фрейме. Один для сообщений, а справа поменьше - для пользователей. А внизу форма отправки сообщений. Каждая из этих сущностей взаимодействует с JS, который отправляет запросы своему httpd написанному на PHP: т.е. банально слушаем порт, парсим HTTP-запрос, делаем нужные операции с БД и шлем ответ в виде JSON, при этом запросы можно слать на обновление div'а с сообщениями каждую секунду и нагрузка будет минимальна даже на 1000 пользователях. Там еще используется кеширование, например шаблон генерирующий юзерлист не обновляется чаще раза в 5 секунд, и т.д.
Единственный минус данного метода в том что нужно договориться с хостером, и хостингзадвабакса не пойдет.
А Online ли пользователь узнать элементарно, у него флаг в таблице сессий. А робот проверяет каждые 10 секунд активен ли пользователь, поле last которое обновляется с каждым запросом меньше ли time() на 15 секунд. Вот и всё. А про бумажку забудь, ее надо в туалете использовать.