Форум » Архив-1 » Отчёт о разработке ТоМВ v2.30 » Ответить

Отчёт о разработке ТоМВ v2.30

ТехнОкраТ:

Ответов - 5

ТехнОкраТ: 31.10.2006 Текущие отличия версии 2.30 от её предшественницы - глючной 2.20-3 : 1. Ну, то что теперь окна открываются во всех браузерах хорошо с поддержкой JS - это и так ясно ))) 2. Изменена структура табличная, чтобы верхнее меню не уезжало вправо при попытке растянуть слишком длинным сообщением фрейм. 3. Теперь работают гиперссылки! Чтобы избежать глюков с JS и тем, как понимают регулярные выражения Лис и Ишак, пришлось всё делать на РНР в обработке сообщения перед выводом - см. функцию print_msgs($min,$max,$value) из библиотеки чата library.php 4. Устранена дырка на зафлуживание чата с последующим переполнением файла БД. Теперь ники и сообщения обрезаются по длине не только при отображении формы, но и при получении данных серверным сценарием (А пришла бы эта мысль, если бы не могучий InetCrack ?!) 5. Изменения коснулись и формата Базы Данных. Теперь необходимо заменить в файле data.php в самом начале символы <?die;?> на <?$value=' А в самом конце файла добавить ';?> Это будет работать только при переходе от версии 2.20-3 до 2.30 . Иначе могут быть конфликты с экранированием кавычек, и скрипт попросту сотрёт базу данных, записав верный формат, но с пустыми ячейками. 6. Раньше казалось, скрипт открывает файловый манипулятор базы данных один раз за обновление страницы. Что может быть лучше? А нет предела совершенству! Теперь файловый манипулятор открывается только тогда, когда отправляется сообщение в чат. А сама база данных банально инклудится в текущий экземпляр сценария автоматически :) 7. Теперь фрейм отправки сообщения работает без глюков и сравнительно сносно пашет добавление фаст-ника в форму. Кроме того, форма теперь генерируется не скриптом, а представляет собой статичный HTML-код, иногда изменяемый на стороне клиента, при необходимости, конечно. А за счёт этого файл JS-сценариев к шкуркам чата уменьшился по размерам почти вдвое - от 4-х, почти 5-ти килобайт (смерть модемника!) до 2-х-с-половиной . 8. Появилась возможность разрезать слишком длинные слова в сообщении на меньшие по размеру (полезно, если в чат отправляет большое сообщение с минимумом пробелов, а фрейм при этом может растянуться в ширину). За количество символов, максимально допустимое в одном слове сообщения, отвечает переменная $tomb[max_word] = .. ; в файле config.php . По умолчанию, стоит значение 50 символов. 9. Теперь в наборе смайликов по умолчанию хранится не 7 самописных, а 37 какого-то из стилей VBulletin , которые ещё год назад использовались на фасте :)

ТехнОкраТ: 01.11.2006 Закрыта ещё одна дырка. Про символ перевода строки, который не фильтровался в сообщении и нике пользователя, потому как просто не было раньше мысли о том, что они как-то туда попадут. База Данных остаётся цела, но её отображение не выходит, а браузер верещит от ошибок. InetCrack - великая вещь

ТехнОкраТ: 02.11.2006 Фактически, теперь 2.30 стал неубиваемым чатиком. Остаётся только админку к нему приделать и выложу :) Пока в админке есть возможности: - Управление конфигурацией чата ( достаточно убогое, потому как любой нестандартный элемент в конфиге после операции над ним из ТоМВАдмина удаляется) - Превью чата - Качественная система авторизации - Хромающая панель модерирования, на которй я собственно и астрял сейчас. Реализовал ультрабыстрый алгоритм самоперезаписывающегося ассоциативного массива (лучше бы я класс нормальный сварганил), который начинает глючить при выборе более чем одного элемента на удаление/редактирование. Вся нелепость в некорректной обработке переменной-"шагомера" $step . После этого гимора останется самая малость - редакторы файлов чата, утилиты операций над бд (копирвоание, опустошение, загрузка из файла, изменение конфигурации). Даже можно будет систему автообновления чата заделать :) (за счёт разницы между переменной конфига $tomb[version] и имеющихся архивов на каком-нить файлообменнике, с которым устанавливает связть ТоМВАдмин


ТехнОкраТ: 06.11.2006 Ничего другого больше не придумал, кроме как сделать два пакета библиотек: • "платный хостинг" - высокая производительность, но безопасность слегка занижена. Впрочем, исправить легко, засунув базу данных куда-нибудь вне дерева веб-каталогов. То же можно сделать и на халявном, но там доступно сделать "шагомер" по документам сервера и выйти напрямую к директории с данными чата, а туда запихнуть произвольный РНР-код. • "бесплатный хостинг" - два файловых манипулятора открываются в случае чтения БД и записи в неё, один - только если надо считать данные. Способ не самый быстрый, но зато безопасный. В случае перезаписи данных в файле будет просто выведено сообщение о повреждении бд. В то время как версия для "платного" выполняет этот произвоьный код, инклудя его в экземпляр приложения. Что побудило это сделать? То, что технология для "платного хостинга" чрезвычайно быстрая и качественная, но никем не используется. Почему? Вот и стал думать над этим вопросом. Потом понял, что обезопасить файл так просто не удастся. Шифровать его имя в файле конфигурации бы не получилось - шагомер и туда доберётся. Правами манипулировать на сервере - долго. Хотя и было бы хорошо, но результат не из самых производительных. Конечно, делать специально программу для выбранного беплатного хоста, чтобы напасть на скромного пользователя чатика - это маловероятное событие. Но получить контроль над сервером через чатик - это уже дело, достойное благородного дона. Жаль, что не каждый благородный дон воспользуется этим во благо хостера. Теперь нужно будет сделать нормальный инсталлятор и приклеить две утилиты к дистрибутиву: • reinstall.php - переустановка чата в случае переезда с одного хоста на другой (или при добавлении какой-нибудь важной папки для последующего апгрейда) • rebuild.php - утилита переписывания базы данных из одного формата в другой и замены соответствующих данных в config.php Также добавится в файл config.php новый элемент массива $tomb : $tomb[datalib] = 'адрес до нужной библиотеки'; В этой переменной будет прописываться адрес до той библиотеки с функциями write_db() и read_db(), которая специализирована под работу с данным типом базы данных.

ТехнОкраТ: 08.12.2006 В принципе, работу можно, наверное, считать законченной. Библиотеки чата переведены на Объектно-ориентированный манер. Теперь всем заправляет класс $database, который включает методы init() - создание структуры БД, получая на входе массив с данными чата write_db() - запись в БД read_db() - чтение БД print_msgs() - выведение собственно сообщений чата на страницу lockFile() - блокирование файла БД на совместном использовании несколькими приложениями Админка полностью функционирует (за исключением модуля на правку смайликов. Его планирую сделать на манер модуля ModeRAT v0.3, разработанного совместно с st.Anger (вернее, разрабатывалась совместно с ним только версия первая. Дальше я уже сам модифицыровывал и изменял алгоритм) Чат будет готов к выходу как только настрою маршрутизатор к ноуту :) Для установки чата инсталлятор уже не нужен будет )) Но выйдет только тестовая версия ToMB v2.27 - вдруг придётся что-то изменять. Если ничего особо плохого не будет замечено - переименую в 2.30 и завершится серия CBox-подобных мини-чатиков ToMB v2.x



полная версия страницы