Статистика посещения чата (php) [клиента чата не нужен]

Здесь содержатся плагины, графические оболочки, наборы смайлов и другие дополнения к CommFort.
Аватара пользователя
Yaroslav
Сообщения: 846
Зарегистрирован: 03:45, 15.12.2007
Контактная информация:

Статистика посещения чата (php) [клиента чата не нужен]

Сообщение Yaroslav »

Представляю замечательный и легковесный скрипт для отлова статистики посещаемости который не требует установки клиента, плагинов к нему или серверных плагинов, а так же почти не требует никакой настройки.
ДЛЯ РАБОТЫ ЭТОГО ВАМ НУЖЕН РАБОТАЮЩИЙ ВЕБСЕРВЕР!
Функции:
  • Определение количества пользователей в чате в текущий момент (немного врёт в бóльшую сторону на 2-3)
  • Вывод информации в картинку (юзербар)
  • Вывод информации в iframe для размещения на портале
  • Снятие статистики с удалённого сервера (необходим доступ на сервер по telnet)
  • Различная кастомизация вывода картинки такая, как цвет фона, цвет текста, размер шрифта, фоновое изображение.
  • Совместимо с *nix системами.
  • Не зависит от версии чата или клиента. (откровенно говоря так можно считать подключения и на другие сервера, не только чата. Нужно только поставить правильный порт. Подробнее в ЛС)
Это не плагин не серверный и не клиентский. Для его работы не нужно ничего, кроме работающего сервера commfort. Версия сервера чата вообще не играет роли.

Принцип работы:
Скрипт при запуске выводит текущее количество людей в чате либо текстом, либо генерирует картинку вроде userbar для вставки в форум.

Использование:
Распаковать архив в корень web сервера и посетить адрес http://ваш.адрес/commfort_stat/

Настройка:
Поправить первые строки файла index.php в соответствии с настройками сервера:

Секция общих нстроек

Код: Выделить всё

$settings['site_url'] = 'http://commfort.com'; // Ссылка на ваш сайт, где можно получить информацию о сервере.
$settings['local_addresses'][] = '192.168.'; // начальные цифры IP-адресов которые считаются «локальными клиентами»
$settings['local_addresses'][] = '10.';
$settings['local_addresses'][] = '127.';
$settings['port'] = '9750'; // Порт чата

$settings['ub_source_image'] = 'source.png'; // Исходная картинка для фона юзербара.
$settings['ub_background'] = '#FAFAFA'; // Цвет фона юзербара. Используется только если нет фонового изображения ^^^^^^^
$settings['ub_font_color'] = '#E90E5B'; // Цвет текста юзербара
$settings['ub_font_size'] = '10'; // Размер шрифта выводимого текста
$settings['ub_line_length'] = '350'; // Длина линии подчеркивания в пикселах

$settings['auto_refresh'] = 60; // Время в секундах, через которое будет автообновляться iframe. Не рекомендуется ставить меньше, чем половина срока кеширования. Для отключения поставить false

[b]Секция настроек удалённой статистики:[/b] (не требуется вам, если запускаете скрипт на том же сервере, где и сервер чата)
[code]$settings['remote_stat'] = true; //Включение удалённого подсчёта

$settings['remote_addr'] = '192.168.1.1'; // адрес удалённого сервера
$settings['remote_port'] = '23'; // Порт на котором работае Telnet этого сервера
$settings['remote_user'] = 'login'; // Имя пользователя в системе
$settings['remote_pass'] = 'password'; // Пароль

Полезно сделать небольшой кеш результатов при большом количестве запросов статистики, потому, что сбор статистики занимает некоторое время.
$settings['cache_ttl'] = 5*60; // Время жизни кеша в секундах. Нагляднее всего указывать в виде произведения.
Подробнее о требованиях удалённой статистики читать в следующем посте >>>

Для отображения в виде iframe ссылаться на index.php?t=text
Для отображения в виде картинки userbar ссылаться на index.php?t=userbar

PS скрипт немного врёт в бóльшую сторону за счёт тех пользователей, которые включили чат, но ещё не выбрали учётную запись от имени которой нужно войти. У меня при онлайне 600 это где-то 3..4 лишних.

PPS если что-то считается не так, как ожидалось, то читать инструкцию как помочь мне решить вашу проблему и следовать всем указаниям. Без этого я помочь не смогу в случае не правильного подсчёта.

Возможно вам будет полезна другая моя разработка:
Web морда (php) для серверных логов

v1.0 — 13.05.2010
* отображение текущего количества пользователей в чате
* отдельно счётчик пользователей из интернета (при правильной настройке $settings['inet_iface'])

v2.0 — 21.05.2010
* добавлена возможность снимать статистику с удалённого сервера.

v2.1 — 21.05.2010
* добавлена настройка цвеа фона и текста юзербара.

v2.2 — 08.09.2010
* добавлена поддержка *nix систем. Просьба отписываться на каких дистрибутивах заработало (или не заработало, тогда см. «как помочь решить проблему»)
* добавлена настройка размера шрифта
* добавлена настройка длины линии подчеркивания
* добавлена возможность сделать фоном заранее подготовленную картинку. ВНИМАНИЕ! Анимационные GIF'ы не поддерживаются. Из них будет взят только первый кадр.

v2.2.1 — 19.09.2010
* исправлен небольшой баг в подсчёте интернетчиков.

v2.3 — 10.10.2010
* переделана система определения локальных и интенет подключений на нормальную. Теперь она не зависит от адреса сетевой карты.
* реализовано кеширование результатов (промежуток настраивается вплоть до отключения). Это будет особенно полезно тем, кто снимает статистику по telnet.

v2.3.1 — 13.10.2010
* Добавлена возможность обновления iframe по таймеру. Переменная настроек $settings['auto_reload']

v2.3.2 — 04.04.2011
* Добавлена обработка ошибок при удалённом снятии статистики. Эти изменения помогут локализовать проблемы при работе с telnet.

План на будущие версии:
* Дополнительные варианты вывода статистики или настраеваемый шаблон картинки и блока — не приоритет, у кого смалец есть в голове и сам сможет поправить параметры iframe
* Заносить результаты в БД (MySQL, SQLite или просто в файл) и выводить в виде статистики по часам, дням и т.д. — конечная цель, к которой я стремлюсь.
commfort_stat_preview.png
(92.31 КБ) 557 скачиваний
Ну и как всегда приветствуются пожелания, критика идёт в сад.

Понравилась поделка? Я добавил полезную функцию по твоей просьбе? Я ответил на вопрос и помог решить проблему? Отблагодари: R753244967524 или Z664725275810 или U806184306803 ЯД:41001743355185
Если у вас нет вебсервера и вы не знаете как его установить, то я могу вам помочь это сделать в личном порядке за вознаграждение из расчета каждый полный или не полный час моего времени:
R753244967524 - 200WMR
Z664725275810 - 6WMZ
U806184306803 - 50WMU
ЯД: 41001743355185 - 200 руб.
Вложения
commfort_stat_v232.zip
(198.36 КБ) 1322 скачивания
Последний раз редактировалось Yaroslav 13:20, 05.01.2013, всего редактировалось 19 раз.
Web-интерфейс серверных логов ——> http://commfort.com/ru/forum/viewtopic.php?t=6618
Web-статистика посещаемости чата —> http://commfort.com/ru/forum/viewtopic.php?t=6546
Благодарности —> R753244967524 Z664725275810 U806184306803 ЯД:41001743355185
Аватара пользователя
Yaroslav
Сообщения: 846
Зарегистрирован: 03:45, 15.12.2007
Контактная информация:

Re: Статистика посещения чата (php) [клиента чата не нужен]

Сообщение Yaroslav »

Теперь возможно снимать информацию и с удалённого сервера.
Поправил первое сообщение.

Для того, чтобы это сделать на удалённом сервере (который сервер коммфорта) должен работать telnet и нужно иметь имя пользователя и пароль к нему.

Для включения Telnet-сервера нужно сделать следующее:

Пуск —> Выполнить... —> services.msc —> [ОК]

в появившемся окне среди всех служб найти Telnet или Телнет, щёлкнуть два раза, в окне свойств найти поле Startup type или Тип запуска и выбрать Automatic или Автоматически. Далее нажать кнопки [Apply], [Start],[OK] или [Применить],[Запустить],[ОК] соответственно.

Теперь нужно создать пользователя. Из коммандной строки это сделать очень просто такими коммандами:

Код: Выделить всё

>net user commfort password /add
>net localgroup telnetclients commfort /add
>net localgroup users commfort /delete
Первая строка добавляет пользователя с именем commfort и паролем password (понятно, что это можно задать произвольно и именно эти данные потом нужно вписать в настройке скрипта)
Вторая строка добавляет пользователя в группу telnetclients, что позволит ему подключаться по телнету
Третья строка удаляет пользователя из группы users, что, фактически, ограничивает пользователя во всём.

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

Внимание: после включения сервиса telnet я рекомендую с помощью файрвола разрешить доступ к порту 23 только доверенный адресам.

Вот и вся настройка.
Обновлённый скрипт v2.0 можно скачать в первом посте темы.

Инструкция: Что делать если возникают проблемы и не показываются интернетчики или что-то считается не так:


ПУСК —> Выполнить... —> cmd —> [Ок]

в появившемся чёрном окне написать:

Код: Выделить всё

ipconfig /all > ipconfig.txt
и нажать Enter.

После этого там же:

Код: Выделить всё

netstat -n -p TCP > netstat.txt
и нажать Enter.

После этого там же написать:

Код: Выделить всё

explorer %userprofile%
Откроется окно проводника, где среди прочих будут лежать файлы netstat.txt и ipconfig.txt. Их содержимое надо прислать мне ЛИЧНЫМ СООБЩЕНИЕМ не забыв обрамить его в[/color]
Последний раз редактировалось Yaroslav 03:06, 08.09.2010, всего редактировалось 1 раз.
Web-интерфейс серверных логов ——> http://commfort.com/ru/forum/viewtopic.php?t=6618
Web-статистика посещаемости чата —> http://commfort.com/ru/forum/viewtopic.php?t=6546
Благодарности —> R753244967524 Z664725275810 U806184306803 ЯД:41001743355185
kamatozzz
Сообщения: 736
Зарегистрирован: 18:58, 21.03.2007
Откуда: Crimea
Контактная информация:

Re: Статистика посещения чата (php) [клиента чата не нужен]

Сообщение kamatozzz »

И повторю вопрос, как обстоят дела с linux? :)
Жилье в Алуште - http://alushta.us/
Аватара пользователя
Yaroslav
Сообщения: 846
Зарегистрирован: 03:45, 15.12.2007
Контактная информация:

Re: Статистика посещения чата (php) [клиента чата не нужен]

Сообщение Yaroslav »

kamatozzz писал(а):И повторю вопрос, как обстоят дела с linux? :)
Я постараюсь на этой неделе поставить несколько экспериментов и выяснить почему не запустилось на никсах, так как формат вывода вроде бы такой, как нужно.
Web-интерфейс серверных логов ——> http://commfort.com/ru/forum/viewtopic.php?t=6618
Web-статистика посещаемости чата —> http://commfort.com/ru/forum/viewtopic.php?t=6546
Благодарности —> R753244967524 Z664725275810 U806184306803 ЯД:41001743355185
Impeck
Сообщения: 21
Зарегистрирован: 12:57, 14.05.2009

Re: Статистика посещения чата (php) [клиента чата не нужен]

Сообщение Impeck »

Возможно использовать userbar с классическим текстом, наподобие этих
Изображение
Изображение
Аватара пользователя
Yaroslav
Сообщения: 846
Зарегистрирован: 03:45, 15.12.2007
Контактная информация:

Re: Статистика посещения чата (php) [клиента чата не нужен]

Сообщение Yaroslav »

Impeck писал(а):Возможно использовать userbar с классическим текстом, наподобие этих
Я рассматривал вариант подстановки исходного изображения для внесения на него статистики. В принципе это возможно, но нужно немного изменить логику, чтобы дать возможность управлять выводимой информацией, позиционированием вывода данных и т.д.
Хотя если подойдёт вариант такой, как сейчас, только вместо однотонного фона своё изображение, то без проблем :)

Но на данный момент текст подобран так, что он занимает всё пространство картинки :)

Изображение
Web-интерфейс серверных логов ——> http://commfort.com/ru/forum/viewtopic.php?t=6618
Web-статистика посещаемости чата —> http://commfort.com/ru/forum/viewtopic.php?t=6546
Благодарности —> R753244967524 Z664725275810 U806184306803 ЯД:41001743355185
Аватара пользователя
Yaroslav
Сообщения: 846
Зарегистрирован: 03:45, 15.12.2007
Контактная информация:

Re: Статистика посещения чата (php) [клиента чата не нужен]

Сообщение Yaroslav »

АПДЕЙТ! Версия 2.2

v2.2
  • добавлена поддержка *nix систем. Просьба отписываться на каких дистрибутивах заработало (или не заработало, тогда см. «как помочь решить проблему»)
  • добавлена настройка размера шрифта
  • добавлена настройка длины линии подчеркивания
  • добавлена возможность сделать фоном заранее подготовленную картинку. ВНИМАНИЕ! Анимационные GIF'ы не поддерживаются. Из них будет взят только первый кадр.
К сожалению многокадровые GIF'ы вообще как-то не понятно поддерживаются библиотекой GD, а использовать для этих целей ImageMagick я не хочу, потому, что это уже получится наручные часы с автомобильным аккумулятором.
Теперь, в связи с тем, что в качестве фона можно использовать любую картинку (в том числе любых размеров) я добавил возможность менять шрифт. Более гибкую кастомизацию именно через настройки не вижу смысла делать. Кому надо уж совсем переделать под себя, попробуйте покопаться в коде. Там ничего сложного. Начиная со строки 100 и до 116 все оформительские пляски. Там задаются координаты всех элементов.
подробнее о работе каждой из функций можно почитать на сайте php по такому принципу:

http://php.net/название_функции

Примеры:

http://php.net/imageline
http://php.net/imagettftext

Или спросите тут (или в ЛС, лучше) я подскажу где и что поменять.
Web-интерфейс серверных логов ——> http://commfort.com/ru/forum/viewtopic.php?t=6618
Web-статистика посещаемости чата —> http://commfort.com/ru/forum/viewtopic.php?t=6546
Благодарности —> R753244967524 Z664725275810 U806184306803 ЯД:41001743355185
kamatozzz
Сообщения: 736
Зарегистрирован: 18:58, 21.03.2007
Откуда: Crimea
Контактная информация:

Re: Статистика посещения чата (php) [клиента чата не нужен]

Сообщение kamatozzz »

Начало отображать статистику хоть какую-то, но немного не верную, ошибается на пару человек и не верно считает с инета.
Так же не отображается текст на картинке http://fun.viks.net.ua/stat
Жилье в Алуште - http://alushta.us/
Аватара пользователя
Yaroslav
Сообщения: 846
Зарегистрирован: 03:45, 15.12.2007
Контактная информация:

Re: Статистика посещения чата (php) [клиента чата не нужен]

Сообщение Yaroslav »

kamatozzz писал(а):Начало отображать статистику хоть какую-то, но немного не верную, ошибается на пару человек и не верно считает с инета.
Так же не отображается текст на картинке http://fun.viks.net.ua/stat
Ошибку на пару человек в большую сторону я оговаривал.
чтобы правильно считало людей из интернета, нужно правильно в настройках указать адрес сетевой карты, на которую подключаются интернетчики. Чтобы мне более подробно разобраться см. "как мне помочь решить вашу проблему".
Показывает
Народа в CommFort'e: 58. Из них из инета: 31
а как должно приблизительно?

Текст на картинке зависит от шрифта. Файл шрифта прилагается. Нужно проверить есть ли он и есть ли у php на него права. (лежит в той же папке)

А ещё банально, но может цвет текста стоит как и цвет фона? :)
Web-интерфейс серверных логов ——> http://commfort.com/ru/forum/viewtopic.php?t=6618
Web-статистика посещаемости чата —> http://commfort.com/ru/forum/viewtopic.php?t=6546
Благодарности —> R753244967524 Z664725275810 U806184306803 ЯД:41001743355185
Аватара пользователя
Yaroslav
Сообщения: 846
Зарегистрирован: 03:45, 15.12.2007
Контактная информация:

Re: Статистика посещения чата (php) [клиента чата не нужен]

Сообщение Yaroslav »

Нашёл небольшой баг в механизме проверки интернетчиков. Фикс в первом сообщении. Версия 2.2.1

kamatozzz, я так и не понял, в линухе у тебя заработало? Проверь фикс на предмет подсчёта интернетчиков.
Web-интерфейс серверных логов ——> http://commfort.com/ru/forum/viewtopic.php?t=6618
Web-статистика посещаемости чата —> http://commfort.com/ru/forum/viewtopic.php?t=6546
Благодарности —> R753244967524 Z664725275810 U806184306803 ЯД:41001743355185
kamatozzz
Сообщения: 736
Зарегистрирован: 18:58, 21.03.2007
Откуда: Crimea
Контактная информация:

Re: Статистика посещения чата (php) [клиента чата не нужен]

Сообщение kamatozzz »

Обновился, считает правильно, но с картинкой не поняток:

Изображение

и через юзербар

Изображение «http://fun.viks.net.ua/stat/index.php?t=userbar» не может быть показано, так как содержит ошибки.
Жилье в Алуште - http://alushta.us/
NoNames34
Сообщения: 39
Зарегистрирован: 17:03, 18.01.2010
Откуда: Чебаркуль

Re: Статистика посещения чата (php) [клиента чата не нужен]

Сообщение NoNames34 »

Плагин конечно хороший,
Установил, настроил- но у меня считает почему-то неправильно считает. считает человек на 20 больше. и интернетчиков тоже неверно считает.
ссылка на сайт настраивал на подсчет удаленного сервера.
Сеть Альфаком, сайт развлечения, знакомств http://dos74.ru
Аватара пользователя
Yaroslav
Сообщения: 846
Зарегистрирован: 03:45, 15.12.2007
Контактная информация:

Re: Статистика посещения чата (php) [клиента чата не нужен]

Сообщение Yaroslav »

NoNames34 писал(а):Плагин конечно хороший,
Установил, настроил- но у меня считает почему-то неправильно считает. считает человек на 20 больше. и интернетчиков тоже неверно считает.
ссылка на сайт настраивал на подсчет удаленного сервера.
Вижу такое:
Warning: Cannot modify header information - headers already sent by (output started at C:\AppServ\www\commstat\index.php:1) in C:\AppServ\www\commstat\index.php on line 119
Народа в CommFort'e: 1. Из них из инета: 1
Чтобы помочь мне разобраться в чём проблема, мне нужны такие данные:

В один момент нужно замерить три показателя:

1) сколько людей в чате (самый верный способ в окошке сервера "количество подключений" или в канала events "вне канала")
2) что показывает мой скрипт (строка вроде этой: "Народа в CommFort'e: 1. Из них из инета: 1")
3) на сервере, где установлен сервер чата, сделать netstat -n -p TCP

прислать мне всё это желательно в ЛС.
Так же мне нужны строки №8 и №10 скрипта:
$settings['inet_iface'] = '192.168.1.2'; // Адрес сетевой
$settings['port'] = '9750'; // Порт чата
т.е. именно то, как настроено у вас.

А ещё проверьте, нет ли у вас в начале перед этим:
<?php
// Статистика посещения чата CommFort от Ярослава v2.0
пробела или новой строки. Из-за этого у вас вылазит ошибка и картинка показываться не будет.
Если файл правили в notepad.exe, то нужно поправить в другом редакторе, так как notepad вставляет в начало файла BOM и это вредит.
Web-интерфейс серверных логов ——> http://commfort.com/ru/forum/viewtopic.php?t=6618
Web-статистика посещаемости чата —> http://commfort.com/ru/forum/viewtopic.php?t=6546
Благодарности —> R753244967524 Z664725275810 U806184306803 ЯД:41001743355185
Аватара пользователя
Yaroslav
Сообщения: 846
Зарегистрирован: 03:45, 15.12.2007
Контактная информация:

Re: Статистика посещения чата (php) [клиента чата не нужен]

Сообщение Yaroslav »

kamatozzz писал(а):Обновился, считает правильно, но с картинкой не поняток:

Изображение

и через юзербар

Изображение «http://fun.viks.net.ua/stat/index.php?t=userbar» не может быть показано, так как содержит ошибки.
Друпал имеет свой .htaccess, поэтому он "мешает". Нужно в друпальный .htaccess сразу после строки rewriteEngine on дописать такое:

Код: Выделить всё

RewriteRule ^stat\.png$ /commfort_stat/index.php?t=userbar [L]
вместо commfort_stat вставить свой путь к скрипту.
Таким образом это правило отработает прежде друпальных.

А с генерацией картинки лажа какая-то. Файл выглядит правильным, почти... Я подумаю, что это может быть...
Web-интерфейс серверных логов ——> http://commfort.com/ru/forum/viewtopic.php?t=6618
Web-статистика посещаемости чата —> http://commfort.com/ru/forum/viewtopic.php?t=6546
Благодарности —> R753244967524 Z664725275810 U806184306803 ЯД:41001743355185
kamatozzz
Сообщения: 736
Зарегистрирован: 18:58, 21.03.2007
Откуда: Crimea
Контактная информация:

Re: Статистика посещения чата (php) [клиента чата не нужен]

Сообщение kamatozzz »

правило не помогло. по прежнему не отображается картинки.
Жилье в Алуште - http://alushta.us/
Ответить