Система сообщений на PHP (как диалоги в ВКонтакте)

Мой давний пост "Как сделать стену как ВКонтакте" плавно перерос в серию статей "Как написать свою соцсеть". Ну что ж, значит идем дальше!

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

Первым делом создадим таблицу для сообщений:

CREATE TABLE `messages` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`user_from` int(10) unsigned NOT NULL,
`user_to` int(10) unsigned NOT NULL,
`message` text NOT NULL,
`datetime` datetime NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

Здесь user_from - id пользователя, который посылает сообщение, а user_to - пользователь, которого посылают =) шутка, адресат это, в общем; message - логично, что текст сообщения, datetime... да че я это разжевываю? По названию всё понятно)

Структура будет такова:
сама страница диалогов будет в файле dialogs.php, она будет взаимодействовать с помощью ajax с еще двумя скриптами msg_add.php и msg_check.php (они пускай лежат в папке /ajax/). Первый добавляет сообщения в базу, второй проверяет, не написал ли нам кто-то с момента последней проверки.

А что касается остального - качаем исходник, я постарался его максимально понятно закомментировать. Возможно, у меня не очень получилось :) В любом случае всевозможные сложные моменты поясню в комментариях, если что, спрашивайте. Удачи!

Демка тут (она иногда подглюкивает, не обращайте внимания)

 Жду с нетерпением
ваших комментариев!
 

Подписаться на RSS

Вы можете нажать "подписаться", чтобы следить за моими новостями!
Так вы всегда будете в курсе появления новостей на сайте =)
О том, что такое RSS можно прочитать здесь.

Подписаться

Подписаться на Twitter

Я специально зарегистрировался в Твиттере, чтобы вы могли следить за обновлениями на сайте =)

Подписаться

Envato marketplace А эти люди занимаются прокатом карнавальных костюмов и масок в Минске. К слову, я им делал сайт.