cosss Предлагаю следующий вариант:
Допустим у тебя есть три фрейма
фрейм с сообщениями
фрейм ввода сообщения
фрейм юзеров онлайн
в фрейм с сообщениями воткни еще один фрейм размером 1x1 который рефрешиться раз в несколько секунд
в нем вызывай пхп код, который проверяет базу или файл на наличие новых сообщений и при помощи java script-a добавляет их в фрейм с сообщениями в какой то слой(для того чтебы не перезагружать весь фрейм с сообщениями)
у всех юзверей своя страница собщений, одна на всех не может быть в принципе,
просто например при логине воткни в сессию юзера переменную которая хранит в себе номер последнего прочитанного сообщения, после запуска чата, тот фрейм 1x1 выбирает из базы сообщения порядковый номер которых больше и выводит их, после назначая переменной сессии номер последнего сообщения,
фрейм 1x1 будет обновляться и не выводить ничего пока не появиться новое сообщение
если интересно дальше могу привести примерный код