CHAT.PHP.SPB.RU

FAQ по программе чата 'chat.php.spb.ru'

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

Если у вас есть вопрос - dima@php.spb.ru. Как ПРАВИЛЬНО задать вопрос, написано в ASK.HTML Спасибо всем, присылает вопросы и баг-репорты.

Этот документ только для чата версии 4.60 или выше. Если у вас более старый чат, смотрите faq.html из дистрибутива.


ЧАСТЬ 1 - для тех, кто собрался программировать

В чате есть баги?
    Нет, в чате нет ни одного известного бага, т.к. они исправляются оперативно и те версии, что доступны для скачивания с сайта являются стабильными и проверенными. Да, у многих пользователей, которым многократно рекомендавали не связываться с вебом (и в т.ч. не ставить чат) часто возникают проблемы. Но решаются они без изменения кода чата, т.е. почти все проблемы - это просто трудности при чтении документации. Если проблемы требовали изменения кода чата - это были бы баги. Именно по причине наплыва неквалифицированных пользователей (т.н. "чайников") можно наблюдать годы спама в форуме разработчиков чата. Иногда, среди всей этой кучи сообщений, пользователи пишут таки содержательные сообщения о проблемах/багах в чате, которые сразу исправляются. Автор чата благодарен за сообщения о багах, но тем неменее рекомендует пользоватям винить в своих "вселенских проблемах" не чат, а самих себя. Например, некоторые люди искренне уверенны, что сообщение типа "чат не работает" попадет к телепату, который сумеет понять причину :-) Каждый раз, когда вам захочется о чем то спросить, вспоминайте этот небольшой монолог:
      - Уважаемые ученые! У меня в подвале скрипит. Объясните, пожалуйста, почему?
Как легко менять дизайн чата?
    В чате есть всего 3 типа страниц:
    • типовой дизайн полноэкранных страниц с большой фиолетовой полосой и большой надписью "CHAT.PHP.SPB.RU"
    • типовой дизайн небольших новых открывающихся окон и некоторых фреймов в чат - с маленькой цветной полоской и названием окна/фрейма
    • особые страницы без дизайна (фреймы сообщений, ввода, userlist и т.п.), таких очень мало
    Для первых 2х типов страниц есть шаблоны. Кроме того, на их внешний вид действуют десятки настроек в конфиге скина и CSS файла скина. Третий тип страниц типового шаблона не имеет и целиком является шаблоном, т.е. содержат полный HTML код. Типичные страницы генерируются из типового шаблона (шапка и нижняя часть страницы) и собственно содержания. Для изменения дизайна и нужно менять эти шаблоны, а содержимое остается постоянным.

    Основной дизайн полноэкранных страниц:

      По-умолчанию в них сверху нарисована большая фиолетовая полоса с логотипом PHP и словами по центру "CHAT.PHP.SPB.RU". Это задется в 2 основных файлах z-web-part1.php и z-web-part2.php. При обновлнении чата обычно эти файлы не изменяются (побробнее в whatsnew.txt), поэтому вы можете их взять из старого чата. Согласно лицензии, вы можете свободно менять эти файлы, т.е. убрать фиолетовую полосу и заменить в ней слова "CHAT.PHP.SPB.RU" на название вашего чата.

    Заголовок всех маленьких фреймов: юзерлист, дополнительные команды, смайлики, банлист и т.д.:

      Дизайн задается в шаблонах z-frame-part1.html, z-frame-part2a.html, z-frame-part2b.html и z-frame-part3.html.

    Основные CSS стили:

      Стили делятся на 2 части: только для фрейма сообщений (css_irc_frame.css) и все остальные (css_all.css). В файле css_all.css можно изменить практически все цвета всех элементов чата, кроме фрейма сообщений. Например, стиль title задает цвет заголовков всех фреймов (фиолетовый фон и белое назнание фрейма). table задает коричный цвет заголовков всех таблиц. Этот файл хорошо комментирован, у каждого стиля стоит подробное описание.

    Все, что касается сообщений в основном фрейме сообщений:

      Все CSS стили хранятся в css_irc_frame.css. Дизайн частей сообщений (формат времени, ник, сообщения, отступы между сообщениями и т.д.) и другие вещи (начальное приветствие) задаются в JS-функциях chat_irc_main.js. Контекстное меню в чате генерируется в chat_irc_menu.js. Не рекомендуется редактировать .JS файлы, т.к. это очень опасно - любая ошибка синтаксиса или кода и весь чат или его части перестают работать. Если будете редактировать файлы, делайте постоянно backup'ы, чтобы при возникновении ошибки вы не восстанавливали файлы из дистрибутива (теряя смысл работы), а откатывались к последней работающей версии. Редактировать JavaScript файлы могут только программисты (а не дизайнеры или пользователи).
В чате существуют СКИНЫ и сотни настройки. Как редактировать внешний вид?
    Одна из очень существенных новинок версии 4.60 являются скины. Пользователи могут выбирать любой понравившийся внешний вид. Владельцы чатов могут создавать собственные уникальные скины для чата, создав буквально ТОЛЬКО 3-4 КАРТИНКИ ДЛЯ ФОНА! Вы можете штамповать новые виды чата, скопировав любой существующий скин и заменить в его каталоге фоновые картинки. Подробное описание работы со скинами описана в SKIN/readme.txt.
Можно редактировать скин DEF?
    Нельзя. Чтобы создать свой скин создайте любой новый пустой каталог. Не копируйте туда все файлы из DEF скина. Скопируйте лишь те файлы, которые вы хотите изменить. Все отсутствующие файлы в вашем скине будут браться из DEF каталога. Такой подход уменьшает проблемы при обновлении чата и минимизирует свободное место.
Я создал новый скин. Почему его нет в списке на главной странице?
    В конфиге __dima.php добавьте описание этому скину - всего одну новую строку с именем скина и названием каталога.
Почему картинки из скина не грузятся?
    Потому, что вы неправильно написали путь к ним. Не достаточно просто указывать имя файла фона, курсор к мышке или другие внешние файлы. Необходимо писать полный URL того или иного файла. Причем не сам URL, т.е. "http://адрес/.../картинка.jpg", а в примерно таком виде: $GLOBALS[fullwwp]/im/картинка.jpg (картинка в каталоге "im/") или $GLOBALS[fullwwskin]/картинка.jpg (картинка в каталоге текущего скина). Такой метод позволяет не привязываться к имени вашего сервера, пути установки чата на сайте, имени текущего (редактируемого вами) скина. Все эти правила описаны в SKIN/readme.txt. Примеры составления данных URL находятся во всех существующих скинах.
Пишут ошибку "не могу открыть или прочитать..." (по-русски или английски)
    Если чат пытается что-то где-то открыть, то значит это что-то должно там быть. Если досконально следовать инструкции, то, проверенно, все будет правильно. Но при кривой настройке или других явлениях чат пытается искать свои файлы в непонятных местах. Не бегите сообщать об ошибке. Это не ошибка. Либо файл был стерт (или вовсе никогда не записывался), либо не так настроены пути в конфиге. Чат действует строго по программе. Найдите файл, который чат пытается октрыть. Если чат его ищет в одном месте, а реально файл найден в другом - настройте путь. По-умолчанию чат настроен так, что если каталги www и daemon находятся на одном уровне вложенности, то все пути правильные. Но стоит это изменить, и без правки путей в __dima.php и dima_chat.conf вам не обойтись.

    Конкретный пример: пишут "не могу открыть файл /home/ваш_логин/chat/каталог/пример.txt". Данное сообщение значит, что как минимум ДОЛЖЕН существовать каталог "каталог", ДОЛЖЕН существовать файл "пример.txt". Причем файл должен быть в этом каталоге. Если нет каталога - создайте его. Нет файла - положите его туда.

    Довольно часто о причинах на экран ничего не пишут. Откройте логи чата - там будет точно написано о таких проблемах.

Пишут ошибку с записью файлов сразу при установке чата (при первом входе)
    Убедитесь в наличии того каталога, куда чат пытается что-то записать. Во время ошибок при открытии или записи файлов всегда конкретно пишут - в какой каталог и какой файл не удалось записать. После проверки наличия каталога установите на него права - chmod 777 php_sess ("php_sess" - полный путь к проблеммному каталогу или полный путь к файлу). Менять права на файлы или каталоги можно из FTP клиента, в шелл ходить не обязательно.

    Пример: пишут о невозможности записи в /home/wwwchat/chat/daemon/www-chat/chat.txt. Это основной файл чата, где идет накопление сообщений. Вариант 1: открыть шелл, написать "chmod 777 /home/wwwchat/chat/daemon/www-chat/chat.txt". Вариант 2: запустить FTP-клиент, зайти на FTP и поставить права (пример с картинками). Ищите в FTP программе в меню пункт "Установить атрибуты". Наведите курсор на файл и поставьте права (атрибуты) "читать/писать/выполнять для владельца,группы,всех".

    Пример 2: часто чат не может записать свои сессии. Про это читайте ниже. Лечится ровно точно так же.

Пишут ошибку "не могу записать..." при длительной работе чата
    Если у вас был работающий чат и через некоторое время он стал жаловаться, что не хватает прав читать/писать какой-то файл, то произошло следующее:
    • вы накануне что-то делали в каталоге чата (вспоминайте и исправляйте сами)
    • админ сервера решил изменить имя юзера для веб-сервера Apache
    • чат был запущен в прошлый раз с правами root (вероятно, по ошибке), а сейчас нормальным образом
    • админ сервере зачем-то изменил владельца файлов
    • периодически запускаемый системный скрипт сервера изменил фладельца файлов
    В любом из этих экстримальных случаях (сами собой они не происходят) чат теряет доступ к части своих файлов. Для решения проблемы перейдите в каталог daemon и напишите команду chmod -R 777 . (точка в конце команды). Если эта команда пожалуется, что не может изменить атрибуты на какие-то конкретные файлы, то сотрите все проблеммные файлы и восстановите их из архива (временные файлы не нужно восстанавливать). Если не будет прав даже стереть такие файлы - опишите свою проблему админу хостера, что нет прав стереть файлы и посоветуйте ему написать команду chown -R username:group /home/username (username/group - ваш юзер/группа). Внимание! Уточните у хостера, будет ли безопасно делать права 777 на файлы чата. В чате есть файлы, которым необходимы такие права. Уточните у хостера, действительно ли к файлам чата невозможно никак попасть, кроме вас самих (username) и веб-серверу Apache. Автор чата инструкций по безопасности на хостинге не пишет. Рекомендуется ознакомится с phpRemoteView - прога позволяет ходить по чужим каталогам юзеров хостера (и часто иметь права на редактирование чужих файлов), если сервер был настоен не квалифицированным админом.
О сообщении "errM1574: Ошибка настройки сессий чата"
    Когда чат пишет эту ошибку, то, вероятнее всего, не настроен каталог для сессий чата: либо его нет, либо сущесвует, но отсутствуют права доступа. Каталог для сессий чата задается в __phpini.php строке iniset("session.save_path","../php_sess") (второй параметр - это и есть каталог). По-умолчанию, при распаковке дистрибутива, этот каталог распаковывается и имеется на диске. Некоторые люди любят стирать разные непонятные файлы/каталоги. Проверьте, что каталог, который указан в __phpini.php имеется на диске. Можно использовать любой пустой каталог, например c:/windows/temp или /home/username/tmp. Главное - указать к нему путь. Тем, кто не понимает значение 2х точек в имени каталога рекомендуется писать абсолютный путь к каталогу от корня диска. Тем, кто пишет в этот параметр не каталог, а URL рекомендуется по быстрому стереть чат. Аминь.

    Кроме существования каталога он должен быть доступен на запись (проблема прав актуальна только в Unix). Поставьте на каталог и все его файлы права "доступ на запись/чтение/выполнение для всех" или из шелла воспользуйтесь командой "chmod 777 -R /путь/к/php_sess". Для тех, кто не понял, имеются картинки с указаниями: http://php.spb.ru/php/chmod.html.

    Помимо этого обратите внимание на другие сообщения от PHP-процессора, которые появляются ВЫШЕ красного окошка детектора сообщений. Их тоже необходимо исправить, начиная с самого верхнего. Именно с верхнего, ибо нижние сами исчезнут, они являются цепной реакцией ошибок.

Что такое TCL?
    Язык программирования. Как PHP или ASP. Обычно все пользователи открывают инструкцию по установке, видят незнакомое слово и с криками "аааа, как сложно!!!!!!" бегут рассказать соседу о диких проблемах при установки чата. На самом деле, вам НИЧЕГО не нужно знать про это слово, кроме как, что чат-сервер написан на этом языке. Необходимо поставить некую программу, дистрибутив которой называется "tcl8.3.4.tar.gz". Но ставится эта программа с помощью 3-х тупых команд. Тупых потому, что вам не придется думать о чем либо. Просто наберите на клавиатуре последовательно 3 команды, описанных в инструкции. И все. После чего смело сможете забыть об этом страшном слове :-) Если хочется больше узнать о PHP, откройте PHP.NET, а сервер языка TCL/TK по адресу TCL.TK
У меня чат версии 4.06. Нужно ли ставить 4.07 для апгрейда до 4.50?
    Разумеется, нет. Чтобы обновиться - поставьте чат в новый каталог/домен, скопируйте из старого настройки, базу юзеров и, если получится, некоторый ваш дизайн. Подробнее про обновление в unix.html. Главное, что промежуточные версии ставить никогда не надо, для обновления на более новую версию.
Как поставить чат 4.50 и сохранить базу юзеров от более старого чата?
    Поставьте новый чат поверх старого. Запустите _convert_base.php для конвертации старой базы в новую. Подробности внутри файла. Если вам важно, дополнительно, сохранить и настройки админовки - читайте unix.html или whatsnew.txt.
Чат через некорое время (пару часов) работы завершается
    Если чат действительно завершается только через некоторое время нормальной работы, то причина может быть следующей. Ни в одном из случаев, кроме специально описанного, вам не следует искать помощи у кого либо, это только ваша проблема!

    1. Сервер, где запущен чат, был перезагружен (админом хостера или пропаданием электропитания). В этом случае ваша задача настроить автозапуск. Читайте очень внимательно: Про запуск чат-сервера, автозапуск и cron. Чтобы узнать, действительно ли сервер перезагружали, запустите из шелла комагду uptime, которая выдаст время работы сервера после загрузки. Таким образом, детектировать данный вариант, элементарно. Как и настроить автозапуск.

    2. Чат сервер не смог чего-то сделать, например, открыть жизненно важный файл, или тому подобную операцию. В этом случае в логи чата (daemon/logs/) обязательно будет написана краткая, но предельно понятная причина завершения чата. Обычно, чат не падает, а просто долго и упорно жалуется в логах, что чего-то не хватает. Жалуется до тех пор, пока хвает 500Кб на файл логов.

    3. Кто-то из админовки нажал кнопку "Shutdown!". Чат записывает в лог сообщение, что его прервал некий юзер по команде "command shutdown" и завершается.

    4. Чат сервер стал жертвой скрипта, который работает на сервере хостера и убивает все процессы, которые работают больше определенного интервала времени. Например, таким образом хостеры борются с ботами eggdrop, которые иногда пытаются ставить любители IRC. Точто так же, этот скрипт-убийца будет прибивать все зависшие (по мнению скрипта) программы. Детектировать этот вариант завершения чата проще простого - скрипт будет убивать ваш чат только в определенные моменты времени. Например, ровно через NN минут работы, или ровно в 00 минут каждого часа. Т.е. данный скрипт мониторит время работы процессов на сервере либо постоянно, либо он запускается периодически. Поэтому определить данный вариант просто. Хотя можно поступить еще проще - спросить у админа сервера. Когда чат (или любую программу) убивают, то процесс чата выгружается из памяти мгновенно. И, разумеется, в логах это не обображается. Логи просто останутся "брошенными". Из админовки или времени изменеии файлов в "daemon/www-server/" можно узнать точную дату выгрузки чата из памяти.

    5. Чат сервер был убит по команде kill pid (где pid - число, номер процесса чата, подробнее тут). Каждый пользователь имеет право прибивать только свои процессы. Т.е. никакой другой юзер хостера ваш чат не завершит. Но супер-пользователь root (админ сервера) может прибить любой процесс. Поэтому, ваш чат может быть завершен когда угодно админом, если тот еще не привык к постоянно висящему в памяти чату. Это тоже легко определить, т.к. админ никогда не будет больше нескольких раз прибивать ваш чат (лениво) и время завершения чата может быть случайныйм.

    6. Чат сервер работает, только по какой-либо причине не соединяется с браузерами, т.к. внешне фрейм сообщений в браузере не работает. Таким образом, то, что внешне чат не работает, на самом деле не означает, что чат-сервер помер. Прочитайте это и узнайте, как определить из шелла запущенность чата.

    7. И наконец самый маловерятный и тяжелый вариант. Чат сервер совершил TCL ошибку и был выгружен. TCL ошибки, как и любые другие, например, PHP-ошибки, бывают по вине ошибочности алгоритма в коде чат-сервера. Чат-сервер написан так, чтобы он мог ловить большинство возникающих TCL ошибок и записывать их в лог. Но иногда чат может упасть по причине ошибки и не записать их в лог. Т.е. чтобы отловить данный вариант проблемы нужно как-то заставить таки чат записывать ВСЕ свои сообщения.
      • Вариант 1: запустите run_this и не закрывайте несколько часов/дней шелла, чтобы визуально в SSH-клиенте видеть все сообщения чата. Как только чат вылетит, последние строк 20 сообщения чата и будут пояснять ошибку. Если чат действительно вылетит так - багорепортуйте.
      • Вариант 2: если не возможности длительного запуска SHH-клиента. Перейдите в каталог daemon. Запустите из шелла "bin/tclsh8.3 dima_chat.conf > full_chat_log.txt 2>&1 &". Где "bin/tclsh8.3" - путь к TCL, "full_chat_log.txt" - файл для отлова ВСЕХ сообщений чата. Именно в этом файле при вылете чата ТОЧНО будут все сообщения чата. Будьте осторожны, файл будет занимать много места (сумма всех обычных логов). Если вам удасться таким образом найти TCL ошибку при вылете - багорепортуйте!
      Итак, этот вариант крайне маловероятный, ибо ошибки все давно отловлены и чаты по такой причине нигде не вылетают. На всех серверах, которые мониторит автор чата, процессы чат-сервера стабильно работают по нескольку месяцев. Например, в версиях 4.06, 4.07 и 4.50 (в них используется одинаковый чат-сервер) последние баги были найдены еще в августе 2002, т.е. прошло не менее полугода!

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

В логах Apache пишут: нет файла "//crond.php" (именно с двумя слешами)
    Чат-сервер каждые N секунд пытается обратиться к вашему Apache и вызвать этот файл. Как будто какой-то пользователь обратился к кему. Если файл dima_chat.conf не настроить, то в логах Апача будет данное сообщение (каждые 60 сек по умолчанию). Для решения проблемы прочитайте dima_chat.conf, где все описано. Но можно и не читать и ничего не делать. Данное поведение никак на работу чата не скажется. Т.е. просто игнорируйте это сообщение в логах, хотя надо пойти и настроить чат.
Перевод времени на летнее/зимнее время и заторможенность компьютера.
    Если на вашем сервере переводится время вперед, из-за весенного перевода часов или временном подвисании компьютера (ОС не дает чату ресурсов для работы), то чат пишет, на сколько секунд работы его обделили: [21:02] detect big pause in work: 86401 sec. При преводе времени назад (осенний перевод часов) чат автоматически перезагружается, отключая всех пользователей. Люди не вылетят из чата, но браузерам придется переподключится. Причем заметить перевод назад чат в состоянии только при новом подключении к чату любого браузера.
Ставлю чат дома. Windows пытается звонить в Интернет и прочие баги.
    Чтобы никто никуда не пытался звонить, в настройках браузера поставьте "никогда не звонить" (или "never dial a connection") на вкладке "соединения". Если появляется вопрос "Перейти в рабочий offline", всегда отвечайте отрицательно. Если говорят, что нет связи и предлагают либо перейти в "рабочий offline", либо попробовать еще раз, всегда отвечайте "пробовать еще раз". Если при обращении по адресу "http://127.0.0.1" страницы отображаются не мгновенно, а через несколько секунд, то нужно создать файл hosts в каталоге C:\Windows (Windows 95/98/ME) или C:\WINNT\system32\drivers\etc (Windows NT/2000/XP) и поместить строку "127.0.0.1 localhost". Любым другим используемым IP-адресам тоже нужно назначать какие-нибудь имена. Следующий пример задает настройку для hosts, дополнительно отключая загрузку счетчиков (дома нет Интернета и счетчики мешают работе):
    127.0.0.1       localhost
    127.0.0.1       u217.97.spylog.com
    127.0.0.1       top.list.ru
    127.0.0.1       top100-images.rambler.ru
    127.0.0.1       hit.hotlog.ru
    127.0.0.1       counter.rambler.ru
    
Как взломать чат? Как читать чужой приват?
    Взломать чат нельзя. По крайней мере до сего момента ни в одной программе автора не было дыр (в том числе и в чате). Если такое когда либо случится, то на сайте сразу будет обновление. Кроме того, автор чата никогда не будет публиковать списки URL поставленных чатов, поэтому даже при теоретически маловероятном варианте нахождения дыры в чате, еще меньше шансов, что кто-то будет знать именно о вашем чате. Когда кто-то пишет о взломе - посылайте таких идиотов подальше. Если же какой-нибудь кулхакер заявит, что прочитал чужой приват в чате, то значит он был одним из 2-х собеседников этого привата. Больше шансов читать чужой приват нет. Либо это не касается чата: можно перехватить сетевой трафик, поставить троян на компьютер жертвы, украсть пароль от FTP чата и подредактировать исходники чата (даже админ чата не в состоянии читать чужой приват), воспользоваться кривым хостингом (где юзера могут друг другу файлы читать/писать/стирать). Да, есть еще один изощренный вид "взлома": кулхакер говорит, что взломал чат и поместил на него свою фотку, а в качестве доказательства приводит URL с длинным цифро/буквенным кодом, который рисует фотку некого чудака с карандашом в зубах (или логотип PHP). Данный прикол является "пасхальным яйцом" PHP, работает на любом хосте и показывает фото одного из разработчиков PHP или другие картинки, логотипы PHP, список авторов PHP.
Что такое 8888 и 80?
    8888 - красивое число. Не более того. Не приписывайте числам особого смысла, если на то нет указаний. А вот 80 - это номер порта, который всегда занят веб-сервером Apache (или веб-сервером с другим названием). Чат должен открывать любой другой свободный порт из диапазона 1025-65535. На самом деле, открыть порт с номером меньше, чем 1024, невозможно, т.к. для этого нужны права root. (Hint: чату не нужны права root для работы) Чтобы это было более проще или если вы ничего не понимаете, запомните: не пытайтесь менять в конфиге число 8888 на 80, это глупость.
Пишут, что "www.your-name.ru:8888" уже занят
    Измените цифру 8888 на любое другое случайное число в диапазоне 1025-65535 (это надо проделать в __dima.php и dima_chat.conf). Если вам будут это писать и далее, то:
    • либо админ сервера запретил открывать программам порты на прослушивание
    • либо хост указан неверно (ни один комп не откроет "хост:порт", где хост не принадлежит самому компу)
    С помощью утилиты ping или nslookup убедитесь, что хост является именем именно вашего сервера, где у вас шелл и ваш веб-сервер. Например, если провайдер создал веб-сервер на одном сервере, а шелл преддоставил на другом - так вы чат не запустите никогда.
Запускаю чат, пишут "что-то не найдено". Чат не запускается из Cron/Автостарта.
    Чтобы запустить чат, перейдите в каталог daemon. Далее наберите "./run_this". Если ваш чат прописан в автостарте сервера или в cron'e, то ОБЯЗАТЕЛЬНО сделайте следующее:
    • узнайте полный (абсолютный) путь к каталогу daemon, допустим, это /users/c/l/html/daemon
    • первой строкой в run_this и run_background напишите команду "cd /users/c/l/html/daemon"
    Таким образом, при запуске run_this или run_background из любого места (не зависимо от текущего каталога), ваш чат сначала изменит текущий каталог на daemon, а потом из текущего каталога запустит команду tclsh dima_chat.conf, что и будет запуском чата. Если вы это не сделаете и будете находиться в шелле не в каталоге daemon, а допустим в /users/c/l/html, то при запуске daemon/run_this TCL будет искать файл dima_chat.conf в текущем каталоге (а его там нет).
Чат вылетает без ошибки
    Проблема: чат пишет только строку Config loaded. Your TCL version: [info tclversion]. Wait please... и завершает работу. Или вообще ничего не пишет. Чтобы узнать больше, перейдите в каталог daemon и напишите: "./run_this". Возможно, вам напишут, что нет места на диске, нет прав что-то открыть и т.д.
Проблема в configure
    Если вы ставите чат на Юних и эта команда из инструкции не работает (вылетает сразу с разными ошибками), то вероятно вы распаковали архив TCL на своем домашнем виндовом компьютере и потом это переписали по FTP (в бинарном режиме!) на диск хостера. Запомните: нельзя переписывать по FTP распакованный архив. Нужно скачать tcl834.tag.gz, переписать по FTP на хостинг, зайти в шелл и там распаковать (см. команду для распаковки в unix.html). Если распаковать не на самом сервере провайдера, то при переписывании потеряются необходимые атрибуты файлов и configure не запустится.
Проблема в make
    Если вы ставите чат на Юних и пишите make, а в ответ ничего не происходит (мгновенный выход с каким-либо сообщением), то прочитайте внимательно, что вам напишут. Вероятнее всего там напишут, что make запрещен на данном сервере. Например, на сервере ValueHost.ru эта команда запрещена. К тому же там не стоит TCL. Чтобы поставить TCL, вам нужно найти любой другой FreeBSD сервер, скомилить там TCL, переписать готовые бинарные файлы по FTP на ValueHost, и только тогда ваша программа будет скомпилирована. Это же касается и любой другой программы, если на вашем сервере запретили make. Если make вылетает не сразу после запуска, то это другая проблема.
С какой версией PHP и Apache работает чат?
    С любым PHP 4.х, любым Apache 1.х и любой версией Windows и Unix. По настройкам PHP проверьте, что register_globals в on и magic_quotes_gpc в off. В чате есть защита от неправильной настройки этих двух параметров, поэтому не волнуйтесь, чат проверит их сам. Кроме того, используйте и качайте только последнюю версию чата.

    Не пытайтесь использовать Apache 2! На настоящее время язык PHP официально не способен работать в Apache2, о чем сообщают разработчики. Есть много умных л... т.е. личностей, которые бегают, суетятся и пытаются кого-то убедить, что весь свежий софт - это круто, Апач2 рулез и т.д. Много раз сказано: Интернет и веб-программы это вам не тут! Веб-программы не ставятся легко и беззаботно, как Microsoft Office. Подсознательное желание иметь все самые свежие программы похвально, но нужно его контролировать. В частности это касается чата, который использует PHP4, который, в свою очередь, использует Apache 1 или 2. Хоть это и не проблема чата, но запомните: либо выполняйте инструкции и не используйте Apache2, либо используйте, но не говорите об этом никому. Нет ни малейшего желания заниматься проблемами людей, которые не соблюдают указание не использовать Apache2, но имеют совесть тратить чужое время на свои проблемы.

    Не стоит так же полагать, что под Apache2 ничего не будет работать (это тоже достоверно неизвестно). Есть много людей, у которых все работает. Эти люди любят хвастаться, что у них ничего не глючит. Если вы из этого числа людей - ради бога! Но есть одна нехорошая черта - это споры по поводу отсутствия глюков в Apache2 с другими людьми. Споря на данную тему можно легко выставить себя дураком, т.к. если вас попросят объяснить, а что же собственно из новинок Apache2 вы используйете по сравнению с Apache1, и вы ничего не сможете ответить. Вы пытались спорить на эту тему? А можете привести кучу аргументов, почему ваша задача не может быть реализована а Apache1, а в Apache2 - может? Рекомендую сначала подумать над этим.

Чат использует MySQL?
    Нет. Читайте внимательнее описание. Все хранится исключительно в файлах, даже база юзеров. Последняя рассчитана на 500,000 юзеров максимум. Хотя на самом деле поддержка MySQL в чате есть. Именно поддержка, т.к. по умолчанию чат работает и абсолютно не нуждается в MySQL. В чате 4.05 версии появилась возможность интегрировать чат с любым форумом (vBulletin.com, phpBB.com, phoru.org), phpNuke и любой другой программой, которая хранит свои регистрационные данные в MySQL базе. Чат можно настроить на ЛЮБУЮ по структуре внешнюю базу данных от любой программы. Смотрите параметр $export_db в __dima.php. Итак, еще раз повторяю: MySQL не нужен ни для чего. А у вас есть выбор, где хранить базу юзеров: на диске (по-умолчанию) или в базе.
Хочу задать вопрос (или вопрос спросить)!
    Спрашивайте. Только прочитайте, как это нужно делать - файл ASK.HTML. Это не тыканье в мануал или FAQ. Там описана информация, которую нужно сообщать для решения проблемы. Без информации на ваш вопрос ответь будет невозможно.
Что, если я случайно запущу чат-сервер (run_background) 2 раза?
    Ничего страшного. При запуске, чат-сервер открывает порт из конфига на прослушивание. Если другой процесс попытается его открыть еще раз, то ничего не будет. Соответственно любая вторая копия чата при запуске сразу завершится с этой ошибкой.
Лог-файлы чата. Если возникла проблема - читайте логи.
    В случае, когда наблюдаются глюки, нужно открыть все лог-файлы и убедиться, что там нет сообщений об ошибках, либо найти причину возникновения ошибок в логах и все их устранить. Одним словом, обязательно читайте лог-файлы. Чат-сервер и PHP-скрипты логи пишут не для дяди!
    1. daemon/logs/много-файлов - ошибки и статусные сообщения чат-сервера
      Файлы этого каталога называются по дате и типу. Daemon - признак установки/закрытия пользовательских соединений. Normal - сообщения о входе в чат, после установки соединения; причины отключения и уничтожение сессий; причина удаления файлов (логов и сессий) и т.п. рабочая информация. Notice - важная информация для владельца чата, но не являющаяся ошибкой (например, подозрительные действия, срабатывание детектора флуда и т.д.) Error - ошибки чат-сервера: нет прав открыть/записать какие-то файлы (вы должны срочно и самостоятельно исправлять эти ошибки настройки), испорченный формат сообщений, непонятная потеря переменных, ошибки в TCL-коде.
    2. daemon/www-chat/php.log - ошибки PHP-скриптов
      Все такие ошибки пишутся на русском и максимально информативно, вплоть до строки php-скрипта, где она возникла. Вероятнее вего ошибки связаны с недостатком прав на файлы. Почти любая запись в этом файле - это ошибка, хотя слов 'error' там искать не нужно. Если в сообщении написано "newuser: ...", то это, очевидно, не ошибка, а просто сообщение о приходе нового юзера. А вот ко всем остальным сообщениям отнеситесь внимательно. Детекторы ошибок придуманы для ОБЛЕГЧЕНИЯ поиска проблем.
    3. daemon/www-chat/admin.log - админские команды
      Это не ошибки, а логирование операций по применению юзерами своего админского доступа к чату: баны, кики, снятие банов, вход в чат. Если вам скажут, что кто-то взломал чат и начал банить всех подряд - не верьте этому. Чтобы кого-то забанить нужно знать логин/пароль любого из админов. Забанить кого-либо так, чтобы это не отразилось в логах нельзя. Кроме сообщения, что такой-то админ ставит некий бан на некоторое время, будет записан его IP адрес. Таким образом вы можете по логу следить, не занимаются ли у вас админы чата произволом.
    4. daemon/www-chat/autostart.log - отчеты об автостартах чат-сервера
      Если чат-сервер не запущен (после перезапуска сервера или намеренного останов чат-сервера), то PHP-скрипты будут пытаться запустить его (если это разрешено настройками конфига). Отчет об этом можно и рекомендуется получать по почте (читайте конфиг, задайте свой email).
    5. daemon/www-chat/flood.log - автобаны за флуд/мат и т.п. пакости
      В логе пишется почему, за что, на какой IP чат ставит автоматический кикбан.
    6. /www/apache/logs - ошибки выполнения PHP-скриптов, вернее "ЛОГИ APACHE"
      Чат содержит команду логировать в лог Апача все ошибки, которые возникают в самом PHP, т.е. ошибки парсинга/выполнения PHP-кода, предупреждений на недостаток прав при открытии файлов, предупреждения при обращении к несуществующим переменным. Логи Апача тоже нужно читать. Где конкретно находится каталог Апача я не знаю, поэтому путь выше написан примерный. Помимо ошибкок PHP в коде чате там копятся и другие ошибки: HTTP 404 (о не найденности страниц). Внимание: когда вам говорят найти "логи апача", не пытайтесь смухлевать и ограничится чтением логов в каталоге чата "www-chat". Нужно пойти и найти эти самые логи Апача. Возможно они будут в вашем каталоге. Возможно, в панели управления сайтом. Возможно, их вообще не будет - попросите админа хостинга их вам предоставить. Пожалуйста не заставляйте автора чата объяснять каждому текст этого абзаца, что "логи Апача", это "логи Апача". А не что-то другое.
Как все таки задать $wwwhost и $wwp?
    Откройте главную страницу вашего чата из браузера: index.php?helpme=1 Вам выдадут то, что нужно записать в эти 2 переменных. Допустим: www.host.ru. Чтобы все правильно работало, вы должны ходить с этого момента по адресу http://www.host.ru, а не http://host.ru или http://chat.host.ru. Данное значение берется из параметра ServerName вашего виртульного хоста, заведенного в Apache для вашего домена.

Вижу много повторящихся подряд строк "<script>s()</script>". Зачем так много? А если убрать? Дикий трафик и т.д.

    Чат каждые 15 секунд при неактивности людей в чате шлет такую строку (если в чате идет беседа, то s() не посылается). Эта строка выполняет очень важную проверку - по ней работает детектор лага. Если, допустим, секунд 30 сервер не шлет эту строку, то браузер клиента понимает, что у него (браузера) завис Интернет и реагирует на зависание: мигает человеку красным фоном (см. справку о детекторе лага), пробует перезагрузить окно и т.д. В случае даже кратковременной потери связи только из-за этой строки и только так можно определить, что браузер клиента подвис. На счет дикого трафика. Если сидеть в чате и ничего не говорить, эта строка будет появлятся каждые 15 секунд. Длина строки - 22 байта, умножим на 4 раза в минуту, на 60 минут, на 24 часа. Получится, что если сидеть весь день (и ночь), то "дикий" трафик составит 126 Кб. Это просто смешно обсуждать. Еще цифра: этот трафик идет со скоростью 1.4 байта/сек, т.е. каждые 2 секунды передается 3 байта. Хотите убрать в своем чате детектор лага? Тогда читайте настройки dima_chat.conf и __dima.php по этому поводу.
При входе в чат вижу "500 Error" (в браузере)
    Закомментируйте в .htaccess все строки, НЕ начинающиеся на "php_value". Если чат опять не грузится, уберите все оставшиеся строки. Если ошибка 500 исчезла, то проблема была в PHP CGI, если не исчезла - обратитесь к админу вашего хостинга. Если дело в Windows, то видимо вы криво поставили Апач. В таком случае воспользуйтесь тем, что идет в дистрибутиве (просто выполните дословно инструкцию по установке).
Можно ли поставить чат на IIS?
    Да, на любой веб-сервер под Windows/Unix, который может выполнять PHP. Про IIS и другие популярные веб-сервера известно: все они могут исполнять PHP. Эта программа как раз на PHP и написана. Проверьте, что каталог daemon, php_sess и www/src не доступны по какому-либо URL. Еще, вероятно, вас ждет проблема с getenv(). Решается просто: заменить во всем тексте getenv() на getenv2(), а последняя будет брать параметры из $_SERVER.
Как выгрузить чат, запущенный в background?
    Если в Windows - либо Ctrl+Alt+Del, либо менеджером процессов, либо утилитой ps.exe (ищите в FTP-поиске). В Unix - файлом ./ps из каталога daemon либо командой ps ax | grep tcl. Программа или команда покажет PID вашего чата (команда найдет все похожее, а программа возьмет PID из файла daemon/www-server/dimachat.pid). После того, как у вас есть pid запускаем команду kill: kill PID, где PID - полученное число. Более подробно, как прибить чат или проверить, что он запущен, написано в unix.html.
Мне не нравится дизайн (или еще что-то не нравится).
    Как было написано выше, программа полностью построена на шаблонах и скинах. Редактируйте конфиги скинов, *.html шаблоны, CSS файлы и т.д. Пишите свои JS скрипты.
Можно я подредактирую некоторые php-скрипты?
    Конечно. Но если вы хотите в дальнейшем обновлять чат свежей версией с http://chat.php.spb.ru, то не редактируйте php-программы, иначе ваш код будет потерян. Вы можете спокойно редактировать .txt и .html файлы, это шаблоны для дизайна. Их обновлять в дальнейшем не нужно, если только чат сильно не изменится. На самом деле вы можете писать дополнительный php-код, только выносите его в отдельные подключаемые файлы, чтобы перейти на новую версию было просто и быстро.
У меня почему-то рефреш был уже после того, как все загрузилось
    так устроен чат (вернее JS скрипты). Если у вас наблюдается лаг (от понятия "временно пропадает связь") и загрузка окна сообщений стопорится, то происходит Refresh окна... Да, refresh в чате бывает, но только тогда, когда это нужно. В начале JS пытается перезагрузить только окошко с сообщениями. Если в течении timeout это не удастся (10-30 сек по-умолчанию), то проиходит refresh всего чата. Если лаг был временным, и сервер не успел заметить, что вы отвалились (прерван коннект на время, большее timeout - от 30 сек), то просто все перезагружется и вас не выкидывает. В окне сообщений и юзерлиста (справа) встроены такие проверки. Если у вас очень долго ничего не загрузится (3 минуты по-умолчанию), вы увидите соотв. сообщение. Одним словом - и вы, и люди в чате БЫСТРО замечают, что у кого-то нет связи. Только ради этого и сделаны данные скрипты. Иначе можно долго сидеть и думать, что со связью все хорошо, а она давно прервалась (в чате это видно - вас выкинуло, а вы сами этого не знаете). С JS такое не возможно. Уже через 10 секунд лага вы заметите, что связь в лаге. P.S. Не нужно думать, что у чата проблемы со связью, это просто решение проблемы лага.
Что такое index.php?&fixhost=1 ?
    Это попытка автоматически подкорректировать неправильную настройку $wwwhost. Значит лишь одно - в $wwwhost написано одно, а настоящий URL в браузере - другой. Либо пользователь пришел намерянно на адрес, не являющийся адресом чата. Например, если в $wwwhost вы написали "www.чат.ru", а пользователь пришел на адрес "чат.ru", то он будет принудительно перенаправлен на $wwwhost.
Пишу сообщение с кавычками, а в чат идут кавычки со слешами
    Такое невозможно, если только вы намеренно не стерли детектор ошибок, который не дает работать чату при неправильных настройках. Отключите "magic_quotes_gpc", поставив 0 или off.
А тут есть приват?
    Есть. Войти в приват можно разными путями.
    Способ 1.
    Если видите ник человека в большом окне сообщений, то нажмите правой кнопкой мыши на его нике. В появившемся контекстном меню выберите нужные пункты:
    • забанить на 5 часов (этот пункт виден только админам)
    • открыть оконо бана (этот пункт виден только админам)
    • написать "привет"
    • личное сообщение (это и есть приват)
    • бросить тортом
    • игнорировать
    Способ 2.
    Выберите любого человека в списке юзеров (справа). Там уже написано "личное сообщение". И будет приват. Просто пишите сообщения, как и раньше, их будет получать только выбранный человек.
    После этого возникает второй вопрос - а почему приват не в новом окне? Если коротко, то потому, что так сделано. А на это есть причины.
    • Это более прогрессивное решение, чем приваты в новых окнах. Окна могут раздражать людей.
    • Но главное - начинающие пользователи не могут найти приваты в других окнах, т.к. часто просто не понимают, что в Windows существуют окна, между которыми можно/нужно переключаться
Как сделать себя админом?
    Найдите в файле __dima.php место, где идет описание данной темы. Дублирую для тех, кто не умеет читать:
    • зарегистрируйтесь
    • в переменную $admfirst впишите ваш логин
    • перезайдите в чат, введя логин/пароль админа
    После этого зайдите в админовку (кнопка 'Admins') и задайте там любое кол-во других админов чата. Только не задавайте там себя второй раз. Админы различаются уровнем доступа от 0 до 1000. Вписав свой логин в $admfirst вы становитесь вечным админом (вас нельзя стереть) с максимальным уровнем 1000. Ваш логин в этой переменной должен быть записан без лишних пробелов и в нижнем регистре.
Я отключил локализацию, поставив $locale=0, это хорошо или плохо?
    В общем случае это плохо, но не вызовет фатальных ошибок. Локализация - это способ в языке программирования абстрогироваться от особенностей национального языка, в нашем случае русского. Данная возможность появляется при установки администратором Unix-сервера необходимых программ. Автор чата крайне не рекомендует пользоваться хостингами, где админ не в состоянии настроить свой сервер, из-за чего PHP не может подключить локализацию CP1251. Это обязанность только админа, т.к. русский язык - неотемлемая часть программ, которые пишут на этом языке и производят текстовые операции. В состоянии настроить локаль (имеет права) только админ. При отключенной локализации ваш чат будет считать, что ники "ДИМА" и "дима" - разные (т.к. они на русском). Не будет понимать матерные слова, написанные большими буквами. И прочие неприятности там, где используются проверки с русскими буквами (в никах и фразах).

    Как поставить локаль?
    Если у вас Linux, то прочитать и выполнить о настройке локали: http://php.spb.ru/php/tar.html. Ваш админ обязан это сделать (настроить 'locale' для кодировки 'cp1251'). Если у вас платный хостин и админ ничего не делает - подайте руководству жалобу на некомпетентность сотрудников. Возможно, вам нужно подправить команду setlocale в __main.php (найдите это слово в этом файле), где идет выбор имени кодировки. Попробуйте значения: "ru", "russian", "ru_RU", "ru_RU.cp1251", "ru_RU.CP1251" и т.д... Не поленитесь, попробуйте разные имена локалей, возможно что-то подойдет! Задайте вопрос админу вашего сервера. Помните, "cp1251" - это основная кодировка документов на русском языке. Используется повсеместно в веб-части Интернета, в русской версии Windows или MS Office и т.д. Пользоваться сервером, который ничего не знает о русском языке, противопоказано. Если вы купили хостинг и русский язык не работает, требуйте вернуть деньги по причине кривых рук админа.

    Как отказаться от локализации?
    Перекодируйте все файлы вашего чата из windows кодировки в koi8. На всех Unix серверах есть по-умолчанию поддержка этой кодировки. Поэтому, изменив в команде setlocale (файла __dima.php) слово "ru_RU.cp1251" на "ru_RU.koi8-r" (или аналогичное), вам чат будет выполнять операции над русскими словами уже в кодировке koi8. Только если весь ваш сайт будет на koi8 кодировке, это может создать уже проблемы с браузерами. Делайте это аккуратно, т.к. многие программы конвертации файлов портят служебные символы в php-файлах, которые потом, разумеется, не работают.

    В любом случае, локализация - не проблема чата. Это ваша совместная с админом сервера задача настроить правильную кодировку для PHP-программ. Если вам не понятна эта проблема, сотрите чат и используйте более примитивные программы, которые не применяют в работе особенностей/преимуществ русского языка (вернее, любого национального языка, кроме английского).

Я поставил чат под Windows/Unix. Перезагрузил компьютер. Ничего не работает!
    Чат при установке не прописывает себя в автозапуск. Поэтому при включении компьютера нужно запустить 2 необходимых приложения - Apache и чат-сервер (файл run_this.bat для Windows или run_background для Unix).
При запуске Apache вижу предупреждение, это плохо или хорошо?
    Примерно такой варнинг:
      [Wed Feb 06 23:24:28 2002] [warn] pid file c:/www/apache/logs/httpd.pid overwritten -- Unclean shutdown of previous Apache run?
    Это - нормально. Не обращайте на это предупреждение внимание. Оно значит, что Апач в прошлый раз был завершен не правильно (это не важно). Если у вас Apache висит в черном окне после запуска хотя бы 5 секунд, то он нормально запустился без серьезных ошибок. Если вам мешает черное окно, то с помощью утилиты rbtray его можно свернуть в трей (рядом с часами), а не на панель задач. Не поленитесь скачать программу "rbtray.exe" с FTP-поиска для минимизации вообще всех не нужных окон в трей. Полезная программа для повседневного пользования.
Не могу поставить чат даже под Windows!
    Да, какой ужас... Согласно инструкции для установки нужно ТУПО запустить скаченный файл (мышкой покликать) и произойдет автоматическая установка с самонастройкой. Это значит, сразу после запуска у вас все само запустится и вы окажетесь уже в чате (в браузере). Если вдруг самонастройка не сработает, то нужно будет самостоятельно ТУПО открыть текстовый файл и внести 2 исправления (Word/Notepad поюзать), ТУПО запустить 2 приложения с диска (мышкой покликать), ТУПО запустить браузер и открыть чат с адреса http://127.0.0.1/. Упомянутое "тупо" вовсе не в том смысле, что нужно быть тупым. А в том смысле, что ДУМАТЬ НЕ НУЖНО. Уже все продумали за вас. Так вот, чтобы поставить чат под Винду, нужно уметь читать, кликать мышкой, юзать Word/Notepad и браузером пользоваться. Если вы не знаете, что такое слово "программа", запуск программы, слово "браузер", адрес в Интернете - то шли бы читать книжки "Windows для чайников" или как там их. Автор чата не обучает пользователей навыкам работы в Windows или Интернету (вернее обучает, но только программистов программированию и веб-технологиям).
Вхожу успешно в чат (фрейм сообщений грузится). Но там пусто!
    Если фрейм сообщений загрузился, но не выводится ничего (ни топика, ни сообщений), то откройте логи чат-сервера. Если в логе пишут Can't open z-channel.html, то значит в конфиге чата не настроена переменная set wwp "***". В противном случае возможно испорчен какой-то шаблон и из-за HTML ошибки ничего не рисуется на экран: проверьте из админовки шаблон топика, текст топика, файлы шаблоны в скинах, что вы меняли.
Не грузятся смайлики и файл стилей
    Вы скачали галерею смайликов, допустим галлерею "LOVE". Создали каталог www/im/smlove, в котором поместили много разных gif/jpg файлов и самое главное настроенный файл _smile_conf.php. Но при просмотре галереи в чате все смайлики выглядят как пустые квадратики (ошибка загрузки). Наведите мышь на любой такой незагрузившийся смайлик, мышкой кликните контекстное меню, выберите свойства (нижний пункт). В поле URL будет такой адрес этого смайлика: http://chat.php.spb.ru/www/sm.php/1/love/help.gif
    • /www/sm.php - путь от корня вашего сайта до php-файла sm.php, выдающим картинку
    • /1/love/help.gif - параметр к программе sm.php:
      • 1 - некое число
      • love - название галереи
      • help.gif - имя файла
    Проблема в том, что некоторые тупые сервера, думают, будто нужно искать на диске не /www/sm.php, а /www/sm.php/1/love/help.gif, которого не существует и не должно существовать. Нормальные сервера понимают, что путь заканчивается на имени php-программы, а оставшаяся часть пути переходит как параметр к этой программе. Отключите в своем веб-сервере фильтры или наоборот подключите какие-то компоненты, которые заствят сервер понимать параметр расширенных путей. Загрузите в браузере URL, что вы вытащите из картинки и посмотрите, что там будет написано.

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

    Данный метод (расширенные пути) используется для более серьезного кеширования статических файлов, типа картинок или CSS. Если бы параметры передавались как обычно, через знак вопроса http://chat.php.spb.ru/www/sm.php?1/love/help.gif, то вероятность кеширования снизилась бы.

Ошибка защиты PR2, оно же: errM1719A, errM1719B или errM1719
    Если вы отправляете в чат сообщение, а вам пишут об ошибке защиты PR2, то значит, что ваш браузер вместе с сообщением не отправляет некий секретный код, выдается случайно каждый раз при входе. А чат без этого кода сообщение не примет. Вероятно, причина потери ключа PR2 в том, что вы используете старый шаблон в своем скине: skin/ваш_скин/frame_kbd.html. Переключитесь на скин def и ошибка исчезнет. Для исправления нужно либо перезаписать frame_kbd.html из дефолтного скина в ваш и повторно отредактировать, либо добавить в 2 формы (в 2х местах файла), после тега <FORM> такую строку: <script>document.write("<input type=hidden name=pr2 value='"+top.pr2+"'>");</script>
При открытии галереи на весь экран останавливается анимация
    Если в новом окне со смайликами щелкнуть на любой из них, то у смайликов в окне пропадает анимация. Это фича Internet Explorer'a.
Пишу в чат обычные буквы, а в чате вижу коды типа "&#123;"
    С русскими буквами такой проблемы нет. Но если вы будете использовать какие-то дополнительные буквы кроме кириллицы, то в чате эти редкие буквы могут отображаться в виде "&#кодов;". Пример кодов: "&#252;", "&#220;", "&#245;" или даже буквенный код "&otilde;" и "&uuml;". Соберите все эти коды и опишите их в массиве $rpl_html_char конфига __dima.php.

    Почему это происходит? Браузер при отправке каких-то символов (вероятнее букв расширенного алфавита) отправляет не саму букву (1 байт), а строку "&#код;". Что браузер и показывает на экране. Чат ничего не придумывает и ничего не портит, а выводит ровно то, что ему передают. Единственное решение данной проблемы - заставить чат некоторые строки (ваши коды) переделывать обратно в буквы/символы. Чат не переделывает всевозможные коды - это небезопасно. Поэтому вы должны перечислить список всех кодов, которые чат будет преобразовывать в символы и рисовать в сообщениях.

Чат не запоминает ник и пароль
    Если вы ставите галочку "запомнить пароль", или меняете скин на какой-то новый, а при следующем входе чат уже забывает про все эти настройки, то узнайте, как чат работает с ними. Есть настройки: ник, пароль, цвет текста, скин, галочка "пароль", режим безопасности. Настройки записываются и хранятся в Cookie только при вашем входе в чат с главной страницы. Cookies технически привязаны к браузеру/компьютеру и настройки не сохранятся, если сесть за другой компьютер. Cookies страются при пользовании кнопкой ВЫХОД на главной странице (внутри чата "выход" другой, к этому не относится), при перебросе на страницу clean-ident.php или при намерянном уничтожении cookies вами в настройках браузера или самим браузером (внешними программами), в зависимости от каких-то настроек. Windows и браузер, настроенные по умолчанию, позволяют хранить cookies с настройками сколь угодно долго. Если вы зарегистрированный пользователь, то настройки восстанавливаются при входе из базы данных, в не зависимости от cookies и компьютера, с которого вы подключились к Интернету.

Чего делать НЕЛЬЗЯ:

  • нельзя в каталоге www-sess хранить сессии от ПХП! Это дикий облом для программы. Храните сессии в c:\temp, в c:\www\php_sess или еще где угодно, только не в 'chat/daemon/www-sess'. Данный каталог использует программа для собственных нужд.

  • каталоги daemon, php_sess и www/src/ не должны быть доступны из Интернета. Иначе любой посетитель сможет узнать номера чужих сессий и начать общаться от любого чужого имени. Как правильно настроить Апач написано в readme.html. Убедитесь, что никакими другими способами (Aliases, Rewrite, Apache status) нельзя попасть в эти каталоги.

  • нельзя заменять ссылки, которые содержат странные точки "./что-то" на аналог без точек. Поверьте, если что-то написано, то так и надо. Крайне не рекомендуется редактировать исходники чата, если только вы не профессиональный веб-программист, который понимает хотя бы такие простые вещи.

  • нельзя менять порт 8888 на 80. 80-й порт уже занят веб-сервером. Кроме того, нет прав открыть такой мелкий порт. И вообще, попытка занять веб-порт на чат-сервер является признаком отсутствия у вас малейшего понимания о вебе...

  • нельзя использовать разные версии php-скриптов и чат-сервера. Да, оно скорее всего запустится и будет работать. Но и багов скрытых создаст немало. Используйте только то, что вы получаете из одного дистрибутива! Кроме того, очень советую, использовать только последнии версии. В данный момент выпускается бета 4-й версии. Хоть она и бета, но на порядок лучше и стабильнее предыдущей версии.

  • не стоит пробовать открыть .php файлы из Проводника Windows. Путь в адресной строке браузера не должен содержать слов C:\WWW\...

  • нельзя в одностороннем порядке изменить параметры $wwwhost и $wwp в конфиг файлах. Если в одном из конфигов вы это поменяли, то во втором тоже нужно внести точно такое же исправление. Конфиги: __dima.php и dima_chat.conf.

  • нельзя копировать разпакованный архив tcl834.tgz (или аналог) по FTP. Файлы *.tag.gz или *.tgz копировать только в архиве. Как распаковать - см. инструкцию.

  • нельзя копировать файлы чата без включенной опции в CuteFTP "binary mode" (по-умолчанию она выключена). В FAR'е опция уже настроена. Если скопировать криво, чат вылетит на "ошибке распаковки" одного из конфигов (ибо именно конфиг и будет криво скопирован).

  • нельзя задавать вопросы более одного раза, иначе вы рискуете уже никогда не дождаться ответа. Чтобы задать вопрос нажмите сюда.
Чего еще нельзя делать - пока не знаю. Присылайте ваши вопросы и рассказы. Скажу честно, до всего этого бы я сам не додумался, если бы со мной в письмах люди не делились историями издевательств над чатом :-) Так что пишите, пишите, всем поможем.




ЧАСТЬ 2 - для тех, кто собрался лишь поговорить

3 самых частых и одновременно идиотских вопроса посетилетей чата http://chat.php.spb.ru: "а почему тут нет никого", "кто в чате админ/модератор", про отстойность дизайна.

Да много же вас здесь :)

    Этот демо-чат (chat.php.spb.ru) предназначен для демонстрации запущенной программы. Если вы думали, что тут нужно тусоваться, то это не правильно. Это не значит, что тут нельзя тусоваться. Не правильно думать, что в чате кто-то должен быть и развлекать случайных прохожих ответами на вопросы типа "Ты тут админ?" или "А как поставить чат?" и т.д. Никто вам ничего не обязан: ни здороваться, ни отвечать на вопросы, ни помогать (здороваются, отвечают и помогают только людям, которые в состоянии задавать вопросы без вступлений). Здесь не чат для знакомств. Не чат для пользователей. Если вы пользователь, а не веб-программист, вас тут не ждут. Вы можете заходить, оценивать чат, пробовать возможности, но, еще раз подчеркну, развлекать вас никто не будет. Максимум чего вы добьетесь, попытавшись что-то требовать с тех, кто находится в чате - это бана.
Эй, (обращение к кому-то в чате), ты тут модератор/админ? Кто автор чата?
    Такой же хитовый и идиотский вопрос. С людьми, которые пытаются узнать о чате не из документации на сайте или FAQ, а начинают со знакомства с админом/автором, никто разговаривать не будет. Это сложно понять простым пользователям, но этот чат (chat.php.spb.ru) существует для тех, кто делает свои сайты, а не зашел просто потрепаться. Вы можете поставить свой чат и устанавливать там любые свои правила, а на этом чате есть придется думать о задаваемых вопросах и помнить про его предназначение: возможность веб-программистам (которые хотят чат на свой сайт) увидеть программу чата в действии. Если вам таки необходимо узнать, кто автор чата, то для вас существует кнопка "Справка по чату" (внутри чата). Она создана для того, чтобы вы сами находили ответы на свои вопросы. Далее, если вам очень необходимо задать вопрос админам/автору чата, то делайте это без вступлений: вошли в чат, задали вопрос, ждите ответа. На вопрос "Можно задать вопрос?" вы не получите ответа никогда.
Какой отстойный дизайн! либо: Это, как минимум, уродливо либо А почему с оформлением такая нервзбкериха? Может все шрифты к одному виду привести?
    Уродливо только одно - не читать документацию и высказывать соответствующие заявы. Этот чат сделан на шаблонах. В принципе, он весь сделан на открытом языке, что значит предельно простое изменение чего угодно - дизайна, расположения элементов, их удаление и т.п. Шаблоны лишь еще более упрощают работу по смене дизайна или подгон под то, что надо. Обратите внимание - мне не очень интересны высказывания разных пользователей о дизайне. Ну, не мой это дизайн вообще. И чат предназначен для скачивания и установки своего дизайна. Сделайте для начала свой, а не рассуждайте. Меня удивляет, зачем на сайт о программировании ходят пользователи и обсуждают тут дизайн? Хотя это понятно, больше им поговорить не о чем. Открою секрет пользователям: любому дизайнеру (я не дизайнер) плевать на высказывания пользователей об их работах, они интересуются только мнением других дизайнеров... ну, а программистам до дизайна нет вообще никакого дела, т.к. это не их область деятельности.
Интересно, а что тут нового ?
Тока часы зачем?либо: На фига нужно постоянное соединение, если в главном окне чата всегда горят часики?
    Во-первых, это не часы. Во-вторых, если бы это были и часы, то они не связаны с постоянным соединением. В правом нижнем углу указано время нахождения в чате, а в правом верхнем углу - время соединения.
А дизайн-то с IRC срисовал
    Друзья мои, я выпадаю в осадок. Веб-чаты и являются неким подобием IRC. Лично я не люблю веб-чаты и сижу только в IRC. Но это не мешает мне писать программы любого типа на PHP/TCL. Если еще кто-то захочет спросить "где скачать IRC клиента" - ftp
Почему так все медленно?
    Это заблуждение. Все настолько быстро, что чат можно сравнить с чатом в ICQ или IRC. Если у вас тормозит связь до сервера chat.php.spb.ru, это не повод думать, что какая-либо программа работает быстро/медленно.
Rambler's Top100 Rambler's Top100