Поставь на сайте чат

Антон Орлов (Москва)

Этот цикл статей — как бы дополнение и продолжение другого цикла, в котором мы рассказываем о комплектах PHP-сценариев для установки на сайте такого средства общения, как форум.

Наличие на сайте форума может сделать веб-ресурс весьма привлекательным для посетителей. Если на форуме начнут обсуждаться важные и интересные темы, то вскоре число его посетителей резко вырастет. Ведь форум весьма удобен для общения: каждый участник может зайти на него в любое удобное ему время, спокойно изучить высказывания, так же спокойно написать свои ответы. Не обязательно даже тратить время в Сети на беседы — никто не мешает сохранить страницы форума на жесткий диск, отключиться от Интернета и писать ответы в текстовом редакторе, чтобы затем скопировать их на форум.

Однако иногда посетителям необходимы прямо противоположные возможности. Например, если позарез надо обсудить с кем-то не очень важный, но срочный вопрос. Бесспорно, и форум для этого можно использовать, но все же он для таких целей не очень-то удобен: страницу с сообщениями темы, где идет беседа, придется постоянно перегружать, тратя при этом время и трафик. Куда удобнее, если слова собеседника сразу же видны, без перезагрузки всей страницы, примерно как в Интернет-пейджере ICQ.

Веб-разработчики такую потребность понимали. Первые программы, обеспечивающие возможность мгновенного (вернее, почти мгновенного) обмена сообщениями, появились давно. Их название вам наверняка знакомо — это «чаты» (от англ. chat — болтовня). Выглядит чат как комплекс веб-страниц, на которые в режиме реального времени выводятся сообщения участников: новые фразы становятся видны всем, как только их автор отдаст команду поместить их в чате, без необходимости ручной перезагрузки страницы с сообщениями.

Чтобы сделать работающий сценарий чата, достаточно обладать элементарными знаниями какого-либо языка программирования, например, PHP. Однако к настоящему времени многие веб-разработчики уже создали немало готовых к использованию наборов программ, обеспечивающих работу чата. Этот цикл как раз и представляет собой обзор таких наборов.

Строение

В простейшем случае чат состоит из накопителя присланных в него сообщений и страниц их вывода. Накопителем сообщений может служить простой текстовый файл или база данных MySQL. Посетителю чата выводится форма для ввода своего имени и текста, который он желает поместить в чат, и страница с сообщениями из накопителя (обычно для этого используется веб-страница из двух фреймов, в одном из которых находится форма, а в другом — тексты сообщений). Текст, введенный посетителем в форму, отсылается на сервер, где записывается сценарием в накопитель, и тем самым становится доступен для чтения всем посетителям. В веб-страницу, на которую выводятся сообщения, вставляется специальный тег, приказывающий браузеру регулярно перезагружать эту самую страницу и тем самым получать новые сообщения.

В результате у посетителей чата появляется возможность оперативно обмениваться сообщениями — каждый посетитель может практически в реальном времени (с задержкой разве что на интервал обновления) наблюдать за появлением новых фраз в чате, а при желании набрать текст и самому послать его в чат.

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

Бесспорно, данную схему чата можно всячески дорабатывать. Например, можно снабдить чат сценарием, сохраняющим сообщения, удаляемые из накопителя (ведущим лог-файл) или сервисом регистрации и авторизации пользователей, позволяющим допускать в чат лишь тех, кто получил логин и пароль для доступа в чат. Наличие сервиса регистрации позволит владельцу чата прекращать допуск в чат отдельных пользователей (модерировать чат, «банить» участников) или давать пользователям особые права — к примеру, возможность добавлять к своим сообщениям рисунки. Нетрудно сделать и специальную страничку с отображением имен тех, кто в настоящее время работает с чатом (или вставить такую страничку как отдельный фрейм в основное окно чата). Можно добавить возможность выбирать цвет для сообщений, помещаемых в чат.

Кроме того, необходимо обращать особенное внимание на безопасность работы чата. Ситуацию, когда с помощью чата на сайт будет помещен файл со сценарием, позволяющим удалять с сайта файлы и помещать туда новые, причем без ведома владельца сайта, желательной не назовешь. Создатели чатов принимают различные меры для защиты. Так, из отправляемых пользователями сообщений обычно вырезаются все теги, так что поместить код на языке программирования (например, на PHP) в файл-накопитель и потом запустить его, зайдя на этот файл браузером, становится невозможно. Впрочем, риск подобного механизма взлома нередко вообще сводится на нет использованием в качестве накопителя не текстового файла, а базы данных MySQL. Вместе с тем некоторые чаты могут не иметь защиты от помещения программного кода в поле ввода имени посетителя, что является прорехой в системе безопасности чата.

Многие чаты помечают своих посетителей, устанавливая им в браузеры специальные файлы — cookie. В результате, один раз зарегистрировавшись и авторизовавшись, посетитель сможет впоследствии сразу входить в чат со своим именем, не тратя время на ввод пароля. Некоторые чаты используют другую схему: запоминают IP-адрес, с которого пришел посетитель с тем или иным именем, а затем позволяют писать сообщения под этим именем только с данного IP-адреса.

Установка

Если чат не использует базу данных MySQL, то для его установки обычно достаточно закачать файлы чата на веб-сервер и (в некоторых случаях) настроить файлы с параметрами чата.

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

В операционных системах Unix, Linux, FreeBSD, на которых работают практически все сервисы хостинга, каждый файл имеет определенные «права доступа» — присвоенные ему параметры, на которые ориентируется операционная система. Эти параметры — разрешения или запреты на чтение файла, на запись в него данных и на запуск как программы. Разрешения и запреты, в свою очередь, могут быть даны трем категориям пользователей: «владельцу», «группе», «всем». Информация о правах доступа к файлу записывается в виде двоичного числа, единица в разряде которого свидетельствует о наличии соответствующего права, а ноль — об отсутствии. Всего разрядов в таком числе девять: по одному для каждого из трех прав каждой из трех групп. Например, разрешение на чтение файла для всех категорий и на запись для владельца будет выглядеть как «110100100». Однако обычно для сведений о правах доступа используется восьмеричная запись. Так, указанное разрешение в восьмеричной системе счисления будет выглядеть как «644».

Обычно те права доступа, которые получают по умолчанию файлы и папки, закачиваемые на аккаунт на сервисе хостинга (например, для папок -770, 755, для файлов — 660, 644), позволяют чату функционировать вполне нормально. Однако некоторые из разработок требуют, чтобы отдельным их файлам и папкам были назначены специальные права, например, запрет на чтение содержимого какой-либо папки. Поэтому, загрузив файлы чата на сайт, поищите в документации к нему упоминания о необходимости присвоения специальных прав доступа для каких-либо его файлов и папок и, если найдете, выполните это действие.

Установить права доступа на файлы можно с помощью FTP-клиента -например, в программе CuteFTP для этого необходимо, выделив файл или группу файлов, выбрать из контекстного меню пункт «CHMOD», а в появившемся диалоговом окне отметить требуемые позиции. Команды установки прав доступа обычно есть также в веб-интерфейсах управления файлами на сервисах хостинга.

Если чат построен на основе MySQL, то процесс установки чата похож на установку Интернет-форума. Об этом процессе подробно рассказывалось в предыдущих номерах журнала, а основы работы с MySQL вкратце перечислены на врезке. Точно так же вам придется создать базу данных MySQL, специальным командным файлом создать в ней набор таблиц, отредактировать конфигурационный файл чата. Ну и, разумеется, закачать файлы чата на сервер и установить нужные права доступа.

Итак, перейдем непосредственно к обзору созданных к настоящему времени разработок для создания чатов на сайте.

В связи с тем, что для создания сценария чата не нужно ни каких-то особых знаний языков программирования, ни долгих недель труда, количество разработок чатов существенно превышает аналогичное число форумов. Однако по той же причине среди всей этой массы имеется огромное множество кустарных поделок, которые содержат множество ошибок и для полноценного использования непригодно. Бесспорно, их можно доработать, но для этого нужно довольно хорошо знать язык программирования, на котором они написаны, но, зная язык, обычно бывает проще самому написать сценарии для чата, нежели дополнять уже готовый код…

Впрочем, из всего множества чатов можно выбрать несколько, которые по меньшей мере относительно безошибочно работают и отвечают элементарным стандартам безопасности (например, не позволяют посетителям вставлять исполняемый код в сообщения). Ниже вы найдете небольшой обзор таких разработок. Среди них будут только программы на языке PHP: таковые куда как проще и устанавливать, и настраивать, чем сценарии на других языках. Впрочем, последние встречаются среди сценариев чатов весьма редко.

Для создания обзора были загружены архивы с наборами сценариев из Интернета, каждый из которых был установлен на сервере локальной сети. Разработки, не функционирующие вообще или выдающие ошибки при работе, были отброшены сразу. Также были исключены чаты, не понимающие русские символы (например, заменяющие их на Unicode-коды). Рассказ о том, что осталось, вы можете прочесть ниже.

SimpleChat

В этом чате накопителем сообщений служит текстовый файл. Установка производится простой загрузкой файлов чата на сервер. Папке data нужно установить права доступа «777» (тем самым разрешив сценариям записывать в нее данные). Возможности чата:

  • При входе в чат пользователь выбирает имя, затем может писать сообщения.
  • Все теги в сообщениях переводятся в «отображаемую» форму.
  • Вводимые гиперссылки автоматически оформляются как работающие.
  • Пользователь может выбрать цветовую гамму окна чата.
  • Отправляемый в чат текст можно оформлять жирным или курсивом.
  • Есть сервис «кто в чате»: справа страницы показывается список пользователей, в данный момент работающих с чатом.
  • Пользователь может вставлять в свои сообщения картинки-смайлики.
  • Пользователь может выбирать частоту автоматического обновления страницы с сообщениями.
  • Пользователь может включить оповещение звуком о приходе в чат новых сообщений — это уникальная функция SimpleChat, в других наборах сценариев для чата такого нет.
  • Чат устроен так, что, записывая сообщения в накопитель, отображает на экране лишь несколько его последних строк. С помощью специальной команды «Архив» можно просмотреть все содержимое накопителя.

Особенности чата:

  • В чате нет средств регистрации и авторизации. Администратор чата не может настраивать его внешний вид.
  • При желании увеличить размер накопителя необходимо указать его требуемый размер (в строках) в 45-й строке файла index.php.
  • Чтобы удалить все сообщения из накопителя, зайдите на страницу clear.php чата. Пароль на вход на эту страницу находится в 7-й строке файла clear.php (по умолчанию — «12345»).
  • У чата есть русский интерфейс, файл с ним называется lang-ru.inc и находится в папке lang. Указание на то, какой файл интерфейса использовать, находится в предпоследней строке файла hdr.inc в папке incl.

Адрес сайта для загрузки — http://hot-things.net.

Microcyb Chat

В этом чате сообщения хранятся в базе данных MySQL и берутся оттуда при каждой загрузке страницы чата. Для установки необходимо создать базу данных MySQL (в PHPMyAdmin или иной программе для работы с этой СУБД), затем импортировать файл команд создания таблиц (chat.sql из состава дистрибутива), после чего указать параметры доступа к базе данных чата в файле config.php в корневом каталоге дистрибутива форума и закачать файлы чата на сайт. Возможности чата:

  • При входе в чат пользователь выбирает имя и может писать сообщения.
  • В сообщениях можно использовать теги <b>, <i>, <u>, <a>.
  • Пользователь может выбрать цветовую гамму окна чата.
  • Есть сервис «кто в чате»: справа страницы показывается список пользователей, в данный момент работающих с чатом.
  • Пользователь может вставлять в свои сообщения картинки-смайлики.

Особенности чата:

  • В чате нет средств регистрации и авторизации.
  • Администратор чата может настраивать внешний вид чата путем ручного редактирования таблиц стилей из папки style, определяющих дизайн чата.
  • Язык интерфейса чата — английский, языковых файлов нет.

Адрес сайта для загрузки — http://www.microcyb.com/chat.

Floodbox

Этот чат является скорее полезным дополнением к web-страничке, а не самостоятельным сервисом. Страницу с его кодом можно вставить в другую web-страницу с помощью HTML-тега iframe, и тогда посетители этой web-страницы смогут общаться между собой, оперативно оставляя сообщения. Сообщения чата хранятся в обычном текстовом файле. Для установки достаточно закачать файлы чата на сайт и установить права доступа 777 для файла dataflood.db.

Возможности чата:

  • Для написания сообщений пользователь вводит имя и текст сообщения.
  • Вместе с именем и текстом можно оставить свой e-mail и адрес сайта.
  • Пользователь может вставлять в свои сообщения картинки-смайлики.
  • Теги из сообщений пользователя полностью удаляются.

Особенности чата:

  • В чате нет средств регистрации и авторизации, сервиса «кто в чате».
  • Администратор чата может настраивать внешний вид чата путем ручного редактирования таблиц стилей в файле floodstyle.css.
  • При написании сообщений под администраторскими именами (они устанавливаются в файле floodconfig.php в текстовом редакторе) сообщения оттеняются красными значками.
  • Интерфейс чата — английский, языковых файлов нет.

Адрес сайта для загрузки — http://floodboy.net.

MPM Chat

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

Обратите внимание, что файл install.php для установки чата открывать не надо.

Возможности чата:

  • При входе в чат пользователь выбирает имя, затем может писать сообщения.
  • Теги из сообщений пользователя полностью удаляются.
  • Пользователь может выбирать частоту автоматического обновления страницы с сообщениями.
  • Чат устроен так, что, записывая сообщения в накопитель, отображает на экране лишь несколько его последних строк. Сообщения каждого дня записываются в отдельный файл.
  • С помощью специальной страницы «Просмотр архива» (файл view.php в дистрибутиве чата) можно просмотреть содержимое накопителя за любой день, просто введя число и номер месяца (подряд друг за другом — типа «1005» для 10 мая) в поле ввода.

Особенности чата:

  • В чате нет средств регистрации и авторизации, сервиса «кто в чате», возможностей оформления текста и внешнего вида окна чата.
  • В составе чата есть Java-аплет, по идее предназначенный для соединения чата и web-камеры. Однако заставить его работать так и не удалось.
  • За право коммерческого использования автор чата хочет 60 евро.
  • В файле config.php можно указать, с каких IP-адресов запрещен вход в чат.
  • Язык чата — английский, но файлы с текстами чата лежат в папке language корневого каталога чата и легко могут быть изменены путем редактирования в текстовом редакторе.

 

Адрес сайта для загрузки — http://www.pahviloota.net/MPM.

 

Продолжение следует

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *