Практическая работа №1. Интерактивный чат

Опубликовано пользователем Бессонов Л.В. 01.04.2011г.

Цель работы

Целью практической работы является создание приложения «Чат» с применением технологии AJAX.

Теоретические материалы

  1. Справочник по стандартному языку запросов (SQL)
  2. Справочник команд PHP
  3. Примеры программ с передачей параметров
  4. Примеры приёмов работы с базой данных

Требования к разрабатываемой системе

Программируемое приложение должно иметь архитектуру «Клиент—Сервер».

Клиентская часть реализует интерфейс на стороне пользователя с использованием технологий HTML, CSS, Javascript. При входе в чат пользователь должен видеть поле ввода имени, под которым он будет участвовать в чате, область переписки и поле ввода сообщения для отправки. Изначально активным должно быть лишь поле ввода имени пользователя. После ввода имени и нажатия на кнопку «Войти в чат», поле ввода имени и кнопка входа должны заменяться приветственной надписью: «%введённое имя% добро пожаловать в чат!». После входа поле ввода сообщений и кнопка «Отправить сообщение» должны стать активными. Клиентская часть должна один раз в 15 секунд отправлять запрос серверу на предмет появления новых сообщений.

Серверная часть реализует чат с «накоплением» потока сообщений. Чат (сервер чата) должен хранить всю историю переписки пользователей до момента принудительной очистки хранимых сообщений администратором.

Взаимодействие клиентской и серверной частей должно производиться с использованием метода POST протокола HTTP.

Серверная часть приложения должна записывать все сообщения пользователей в базу данных.

Примечание

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

Варианты индивидуальных заданий

Далее по вариантам необходимо реализовать дополнительный функционал чата.

Вариант 1

  1. Реализовать отправку смайликов в сообщениях и возможность пользователям подгружать к чату собственные смайлики.

Вариант 2

  1. Реализовать отправку приватных сообщений в общем потоке и возможность посылать специальный запрос, получающий все приватные сообщения.

Вариант 3

  1. Реализовать приват-чат

Вариант 4

  1. Реализовать возможность переброса файлов между пользователями

Вариант 5

  1. Реализовать «комнаты» чата, с возможностью перехода пользователей между комнатами

Вариант 6

  1. Реализовать возможность изменения пользователем имени, под которым он отправляет сообщения (посетители чата должны быть уведомлены об этом изменении), а также возможность изменения размера и цвета шрифта сообщений.

Вариант 7

  1. Реализовать возможность блокирования IP-адреса (запрет участия в чате). Предусмотреть блокирование на интервал времени, либо «пожизненное».

Вариант 8*

  1. Реализовать возможность цензурирования сообщений на уровне сервера. При этом в базе данных должно храниться сообщение в том виде, в котором оно было отправлено пользователем, но при выдаче этого сообщения клиентам, нецензурное слово должно заменяться на изображение «цензура».
  2. ** для фильтрации нецензурных слов использовать алгоритм нечёткой логики 

Вариант 9*

  1. Реализовать возможность фильтрации «антиспам» на уровне сервера. Система срабатывает на посылку 3 одинаковых сообщений за интервал времени 1 минута. При этом в базе данных должны храниться все сообщение в том виде, в котором оно было отправлено пользователем, но при выдаче избыточные сообщения (4-е, 5-е и т.д.) должны фильтроваться, при этом отправитель должен получать сообщение «Сработал фильтр "анти-спам"».
  2. ** для определения «одинаковых» сообщений использовать алгоритм нечёткой логики

Баннер SGU.RU