Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

MyDC.ru _ Скрипты для RusHub'а _ ChatLogsMySQL

Автор: STRELOK 12.1.2010, 18:24

Название скрипта: ChatLogsMySQL
Версия скрипта: 4.3d (03.08.2011)
Автор: Accelerator
Скрипт для: RusHub, PtokaX
Описание: Логирует чат и сохраняет данные в базу MySQL
Содержание архива: Сам скрипт, Web-интерфейс

История версий

    Версия 4.3d:
  • Поправлена ошибка с занесием данных и созданием БД на Linux (наблюдались проблемы чтения из базы) (Спасибо за репорт CrazyKiller)
  • Пересмотрел веб-часть, убрал некоторые лишнии строки, поправил запросы

    Версия 4.3c:
  • Добавлена опция включения показа IP адресов в логе. Включается в файле config.php

    Версия 4.3b:
  • Усовершенствован поиск ссылок в чате, для занесения в таблицу логов ссылок

    Версия 4.3a:
  • Вновь поправка в регулярном выражении, когда некоторые команды при вводе заносились в логи

    Версия 4.3:
  • Поправлена ошибка, когда некоторые команды при вводе заносились в логи

    Версия 4.2:
  • Усовершенствована функция нахождения ссылок в чате и занесении их в БД с html тегами (Взято из StatPX от alex82)
  • Сделан стиль для веб части
  • Оптимизирован запрос в БД на вебе
  • Поправлены некоторые ошибки в веб-интерфейсе
  • Добавлена мультиязычность в веб форму (языки: русский, английский, украинский)

    Версия 4.1:
  • Магнет и обычные ссылки теперь записываются в базу полностью вместе с комментарием

    Версия 4.0:
  • Поправлена ошибка с парсером смайлов(некоторые смайлы не определялись)
  • Версия скрипта также работает на PtokaX

    Версия 3.2:
  • Смайлики на веб-странице отображаются графически(Спасибо alex82)

    Версия 3.1:
  • В базу теперь также записываются профиль и IP-адрес юзера
  • Изменения в веб интерфейсе
      - Ники пользователей в логах теперь выделяются различными цветами в зависимости от профиля


    Версия 3.0:
  • Исправлена ошибка с парсером ссылок в сообщении и занесением их в БД
  • Добавлено экранирование данных в запросах к БД
  • Изменения в веб интерфейсе

    Версия 3.0 Beta:
  • Логирование магнет и обычных ссылок
  • Исправлена опечатка в local https
  • Убрана неиспользуемая таблица ChangeTime
  • Изменения в веб интерфейсе

    Версия 2.0:
  • Изменения в веб-интерфейсе
  • Некоторые мелкие доработки
  • Все dchub, http, https, ftp, магнет ссылки(спасибо alex82) и тд. теперь будут отображаться в логе как гиперссылки

    Версия 1.1:
  • Некоторые мелкие исправления (Поправил ошибку, когда не логировались некоторые магнет-ссылки)



Внимание! Скрипт не выводит в чат последние n сообщений, он только сохраняет данные в БД и с помощью веб-интерфейса их можно просмотреть.

Советы:
При создании БД на Windows используйте кодировку базы и таблиц cp1251_general_ci;
При создании БД на Linux используйте кодировку базы и таблиц utf8_general_ci

Для работы скрипта требуется установить библиотеку Mysql
Для PtokaX: http://mydc.ru/topic1508.html
Для RusHub: http://mydc.ru/topic2952.html

 ChatLogsMySQL.rar ( 18.99 килобайт ) : 38
 

Автор: Wariner 12.1.2010, 18:31

Хм а почему как то избирательно переведено? там же вроде достаточно объёмный скрипт!

Автор: STRELOK 12.1.2010, 18:33

Цитата(Wariner @ 12.1.2010, 20:31) *
Хм а почему как то избирательно переведено? там же вроде достаточно объёмный скрипт!

Я убрал абсолютно все команды, убрал вывод последних сообщений в чат, ну и соответственно оставил только сохранение чата в MySQL big_smile.gif

Автор: Wariner 12.1.2010, 18:36

Ну я и спрашиваю какой в этом был смысл?

Автор: STRELOK 12.1.2010, 18:44

Цитата(Wariner @ 12.1.2010, 20:36) *
Ну я и спрашиваю какой в этом был смысл?

Не охота было переводить полностью весь скрипт))) Делал этот скрипт для личных целей, здесь выложил специально для тех, кому он (как и мне) может пригодится big_smile.gif Лично он мне нужен только для того, чтобы было возможно просматривать лог чата через веб-интерфейс.

PS: Может позже переведу и весь скрипт)

Автор: Accelerator 23.5.2010, 8:17

Добавлена новая версия скрипта.


Автор: alex82 23.5.2010, 23:00

Цитата(Accelerator @ 23.5.2010, 8:17) *
Все dchub, http, https, ftp, магнет ссылки(спасибо alex82)
Это как? Веб-морда ведь на php написана? Как ты запихнул туда код из StatPX? Неужели проще портировать эти функции c Lua на PHP, чем написать их с нуля?

Автор: Accelerator 24.5.2010, 3:55

Код парсера магнет-ссылок в сообщении пользователя был запихнут в сам скрипт птоки, т.е. в ChatLogsMySQL.lua. После того, как в сообщении обнаруживаются ссылки, они сразу записываются в базу MySQL с необходимыми тегами html.

Автор: fixx 11.6.2010, 12:40

Ну его нафик, опять та же байда, что и с птокой была:

Цитата
[13:21:13] <fixx> ????...

Как уж там я там решал эту задачу и не помню даже.
Вобщем оно в базу уже эти вопросики записывает.
Кодировка (сравнение) cp1251_general_ci
Что опять не так?
=(((

Автор: Accelerator 11.6.2010, 13:03

Ну у меня кодировка таблиц latin1_swedish_ci хотя вроде бы особых отличий от cp1251_general_ci она не представляет.

Когда проверял у себя этот скрипт, в базу всё пишется нормально. Кодировка таблиц была latin1_swedish_ci. Попробуйте изменить кодировку.

Автор: fixx 15.6.2010, 10:40

выставил utf8_unicode_ci - вроде работает.

Автор: Accelerator 15.6.2010, 11:18

Добавлена версия 3.0 Beta



P.S.: Скрипт не проверил, поэтому если возникнут ошибки, просьба отписываться здесь.

Автор: Nickolya 15.6.2010, 16:26

Accelerator, а http://mydc.ru/index.html?showtopic=1508&view=findpost&p=23495 в запросах ты вообще не применяешь? Получается огромная брешь в скрипте...

Автор: Accelerator 15.6.2010, 16:49

Цитата(Nickolya @ 15.6.2010, 19:26) *
Accelerator, а http://mydc.ru/index.html?showtopic=1508&view=findpost&p=23495 в запросах ты вообще не применяешь? Получается огромная брешь в скрипте...

С экранированием в RusHub'е проблемы возникают. Выводились различные ошибки. Если вечером надумаю проверить скрипт, кину ошибки, которые выдаёт, если экранировать запросы.

UPD: Всё работает! В релизе 3й версии всё сделаю как надо.

Автор: Accelerator 16.6.2010, 16:46

Добавлена версия 3.0 Release:




Автор: Accelerator 17.6.2010, 14:51



Автор: Accelerator 31.7.2010, 13:14

Доступна новая версия скрипта!


Автор: Accelerator 2.8.2010, 20:35



Автор: Accelerator 6.8.2010, 15:10


Автор: Sorrow 10.10.2010, 12:25

Версия хаба 2.2.5 Lua plugin 1.25
Версия скрипта 4.1
Первое сообщение с магнет ссылкой нормально сохраняется, отправка еще одного сообщения приводит к закрытию окна Rushub'a(данные при этом в БД заносятся только в таблицу cl_mainlogs).
RusHub будет закрываться пака не очистить таблицу cl_magnetlogs, затем история повторяется.
Такая же история при сохранении обычных ссылок.
Подскажите в чем может быть проблема?

Автор: Accelerator 10.10.2010, 13:06

В luaerr.log есть что-нибудь?

P.S: Сейчас проверил у себя - всё работает, окно хаба не закрывается, данные записываются

Автор: Sorrow 10.10.2010, 13:25

единственное сообщение /rushub/scripts/ChatLogsMySQL.lua:127: attempt to index local 'cur' (a nil value) (скрипт не запускался после попытки найти причину неисправности)
При попытки создать еще одну запись в таблицах cl_linklogs и cl_magnetlogs вылетает без сообщений об ошибке.
MySQL 5.1.50

Автор: Accelerator 10.10.2010, 17:02

Цитата(Sorrow @ 10.10.2010, 16:25) *
единственное сообщение /rushub/scripts/ChatLogsMySQL.lua:127: attempt to index local 'cur' (a nil value) (скрипт не запускался после попытки найти причину неисправности)

Странная ошибка... Скорей всего она осталась от старой версии скрипта. А на счёт того, что вылетает окно хаба, то я не знаю, может быть вылетает из-за какого-то другого скрипта, но не знаю, у себя проверял, всё нормально....

Автор: Sorrow 25.10.2010, 18:35

Собрал библиотеку из архива mysql_2.1.1_src_vs9.rar, при сборке заменил исходники Mysql на новые. Работает нормально.

Автор: Accelerator 16.12.2010, 14:07

Доступна новая версия!


Автор: Accelerator 7.1.2011, 21:02

Доступна новая версия!



Автор: Dimon21 15.7.2011, 10:44

Accelerator добрый день .У меня стоит версия rushub 2.3.4 на Windows-7.Скрипт работает отлично,но проблема заключается в том,что не выводит ip юзера.Версия 4.3.

Автор: Accelerator 15.7.2011, 12:40

Так и не было задумано выводить ИП адрес юзера. Если уж надо, залью немного погодя новую версию.

Автор: Dimon21 15.7.2011, 12:45

Accelerator 'это было бы здорово если в логе вёлся полный отчёт по нику и айпи.

Автор: Accelerator 15.7.2011, 12:50


Автор: Dimon21 15.7.2011, 13:04

Accelerator Хм а айпи так и не идёт.
Опция в конфиге включена показать IP адрес.

Автор: Accelerator 15.7.2011, 13:17

Да, действительно, поторопился) Залил исправленную версию.

Автор: Dimon21 15.7.2011, 13:27

Accelerator - спс всё работает, теперь можно через веб следить что тварится на хабе.

Автор: CrazyKiller 3.8.2011, 14:46

Прошу помощи !
Ubuntu Server 11.04/ Apache2/PHP5

в общем всё последняя !

Лог Апатча !

Лог
[Wed Aug 03 14:42:27 2011] [error] [client 178.150.158.190] PHP Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in /var/www/index.php on line 30
[Wed Aug 03 14:42:27 2011] [error] [client 178.150.158.190] PHP Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in /var/www/index.php on line 32
[Wed Aug 03 14:42:27 2011] [error] [client 178.150.158.190] PHP Notice: Undefined variable: S in /var/www/index.php on line 39
[Wed Aug 03 14:42:27 2011] [error] [client 178.150.158.190] PHP Notice: Undefined variable: S in /var/www/index.php on line 39
[Wed Aug 03 14:42:27 2011] [error] [client 178.150.158.190] PHP Notice: Undefined variable: S in /var/www/index.php on line 39
[Wed Aug 03 14:42:27 2011] [error] [client 178.150.158.190] PHP Notice: Undefined variable: S in /var/www/index.php on line 39
[Wed Aug 03 14:42:27 2011] [error] [client 178.150.158.190] PHP Notice: Undefined variable: S in /var/www/index.php on line 39
[Wed Aug 03 14:42:27 2011] [error] [client 178.150.158.190] PHP Notice: Undefined variable: S in /var/www/index.php on line 39
[Wed Aug 03 14:42:27 2011] [error] [client 178.150.158.190] PHP Notice: Undefined variable: S in /var/www/index.php on line 39
[Wed Aug 03 14:42:27 2011] [error] [client 178.150.158.190] PHP Notice: Undefined variable: S in /var/www/index.php on line 39
[Wed Aug 03 14:42:27 2011] [error] [client 178.150.158.190] PHP Notice: Undefined variable: S in /var/www/index.php on line 39
[Wed Aug 03 14:42:27 2011] [error] [client 178.150.158.190] PHP Notice: Undefined variable: S in /var/www/index.php on line 39
[Wed Aug 03 14:42:27 2011] [error] [client 178.150.158.190] PHP Notice: Undefined variable: S in /var/www/index.php on line 39
[Wed Aug 03 14:42:27 2011] [error] [client 178.150.158.190] PHP Notice: Undefined variable: S in /var/www/index.php on line 39
[Wed Aug 03 14:42:27 2011] [error] [client 178.150.158.190] PHP Notice: Undefined variable: S in /var/www/index.php on line 39
[Wed Aug 03 14:42:27 2011] [error] [client 178.150.158.190] PHP Notice: Undefined variable: S in /var/www/index.php on line 39
[Wed Aug 03 14:42:27 2011] [error] [client 178.150.158.190] PHP Notice: Undefined variable: S in /var/www/index.php on line 39
[Wed Aug 03 14:42:27 2011] [error] [client 178.150.158.190] PHP Notice: Undefined variable: S in /var/www/index.php on line 39
[Wed Aug 03 14:42:27 2011] [error] [client 178.150.158.190] PHP Notice: Undefined variable: S in /var/www/index.php on line 39
[Wed Aug 03 14:42:27 2011] [error] [client 178.150.158.190] PHP Notice: Undefined variable: S in /var/www/index.php on line 39
[Wed Aug 03 14:42:27 2011] [error] [client 178.150.158.190] PHP Notice: Undefined variable: S in /var/www/index.php on line 39
[Wed Aug 03 14:42:27 2011] [error] [client 178.150.158.190] PHP Notice: Undefined variable: S in /var/www/index.php on line 39
[Wed Aug 03 14:42:27 2011] [error] [client 178.150.158.190] PHP Notice: Undefined variable: S in /var/www/index.php on line 39
[Wed Aug 03 14:42:27 2011] [error] [client 178.150.158.190] PHP Notice: Undefined variable: S in /var/www/index.php on line 39
[Wed Aug 03 14:42:27 2011] [error] [client 178.150.158.190] PHP Notice: Undefined variable: S in /var/www/index.php on line 39
[Wed Aug 03 14:42:27 2011] [error] [client 178.150.158.190] PHP Notice: Undefined variable: S in /var/www/index.php on line 39
[Wed Aug 03 14:42:27 2011] [error] [client 178.150.158.190] PHP Notice: Undefined variable: S in /var/www/index.php on line 39
[Wed Aug 03 14:42:27 2011] [error] [client 178.150.158.190] PHP Notice: Undefined variable: S in /var/www/index.php on line 39
[Wed Aug 03 14:42:27 2011] [error] [client 178.150.158.190] PHP Notice: Undefined variable: S in /var/www/index.php on line 39
[Wed Aug 03 14:42:27 2011] [error] [client 178.150.158.190] PHP Notice: Undefined variable: S in /var/www/index.php on line 39
[Wed Aug 03 14:42:27 2011] [error] [client 178.150.158.190] PHP Notice: Undefined variable: S in /var/www/index.php on line 39
[Wed Aug 03 14:42:27 2011] [error] [client 178.150.158.190] PHP Notice: Undefined variable: S in /var/www/index.php on line 39


Строки
index.php
Строки
Строка 30 $cnt = mysql_num_rows($result);
Строка 32 while ($myrow = mysql_fetch_array($result))
Строка 39 {echo $S[$i];}


Как решить мне данную проблему, в скрипте и в веб файлах не чего не менял кроме Логина,Пасса, Название Бд и т д!
Прошу помощи ?

Автор: Accelerator 3.8.2011, 14:58

Это не ошибка, а предупреждение. Его можно отключить.
Откройте файл index.php и пропишите в самом начале:

Код
error_reporting(0);

Автор: CrazyKiller 3.8.2011, 18:18

Исправленный для Linux !
Спасибо Accelerator за помощь !
Все так-же как и на Windows Только Кодировку при создание базы делаем utf8_general_ci !

 ChatLogsMySQL_Linux_.rar ( 16.53 килобайт ) : 4

Автор: Accelerator 3.8.2011, 18:31


Автор: CrazyKiller 3.8.2011, 21:55

Как насчет Апдейт сделать !

Типа как тут http://mydc.ru/r/?http://hub.mydc.ru/chatlog.php

Календарь + при нажатие на Ник показывало все Сообщение данного ника так же и на дату big_smile.gif

ну можно и Странички сделать ( Pages ) big_smile.gif

Автор: Accelerator 4.8.2011, 7:05

http://mydc.ru/topic1823.html?view=findpost&p=14682

Автор: Angel_D 11.8.2011, 14:07

IIS 7.5 + MySQL 5.5.13 + rushub_2.3.5_win64

при кодировке таблиц cp1251_general_ci русский рекст даже не записывается в таблицу (буржуиньськи и цифры пишутся). т.е. даже записи о том, что сообщение было - нету, если оно с русскими символами.
если созданную запись в базе исправить ("123" поменять на "тест") - в WEB-логе кракозябы.

при кодировке таблиц utf8_general_ci таких проблем нет - там только одна проблема - кракозябы big_smile.gif

может в скрипте какой настройки не нашел? или где-то еще затупил? или я один такой "виндофил"?

Автор: Dimon21 11.8.2011, 14:20

Я на виндозе использую такую кодировку latin1_swedish_ci и работает нормально.

Автор: Angel_D 11.8.2011, 14:57

к сожалению не помогло

Автор: CrazyKiller 11.8.2011, 15:18

Плин ну в начале Темы написали все !

Код
Советы:
При создании БД на Windows используйте кодировку базы и таблиц cp1251_general_ci;
При создании БД на Linux используйте кодировку базы и таблиц utf8_general_ci


Для вас если Windows то кодировка cp1251_general_ci !

Если вы видите через phpmyadmin кракозяблы, это нормально !
ну а что видит сам php скрипт ?

Вот Панель моего мускула !


А вот сам чат что выдаёт !

http://mydc.ru/r/?http://dc.triolan.in.ua/chat/

Кодировка utf8_general_ci так как Линукс стоит !

Автор: Dimon21 11.8.2011, 15:28

CrazyKiller на виндозе кодировка cp1251_general_ci не работает крикозябры выходят а вот latin1_swedish_ci работает нормально.

Автор: CrazyKiller 11.8.2011, 15:35

cp1251 это стандарт для виндозы, как он не может работать в данной кодировке, я не понимаю !

Есть мысль что Браузер не может, но это нужна проверять, или сам php сохранен не в той кодировке ! big_smile.gif

Нужна все смотреть ! surrender.gif

Автор: Dimon21 11.8.2011, 15:58

CrazyKiller когда я ставил cp1251 логи я видел одни крякозябры.И хватит писать одно и тоже, тем более ты линуксоидник.

Автор: CrazyKiller 11.8.2011, 17:20

Дим ты не обижайся но ты 100% не прав !!!

Все тут !
Лично для тех кто не верит или доверяет !

Первое, я не линуксоид, у меня сервер на линуксе но не значит что моя рабочяя машина на линуксе, нет, ниже скрин привожу в доказательство что у меня стоит !

Скрин


Видим что стоит Win Xp OEM если точнее !

Скачал я РусХаб последний Exe Формат, Т.К для Виндовс !
Поставил Все библиотеки Мускул и т д
Залил туда один скрипт, Лог Чата через Мускул, из за которого щас сыр бор !
Скрин Запуска Хаба

я даже не трогал настройки его, так как все настройки стандартные к моему мускулу который стоит на Windows Платформе !
Зашёл потом в мускул, добавил базу на 1251 CI Генерал !
Запустил Хаб, скрипт в хабе создал мне базу в моём мускуле !
и что я вижу !
Скрины









Факт самого браузера, что он видит !
Скрин



Windows Xp+ Denwer (Apache + Mysql) + Hub RusHub 2.3.5 + Скрипт, и все отлично работает !

Вероятно проблема в вашем Mysql сервере или что у вас там стоит, причин может быть много ! big_smile.gif
Думаю я доказал что на Виндовс все работает !!!


 

Автор: mariner 11.8.2011, 17:55

вот вы извращенцы. А слабо отладку в скрипте врубить и посмотреть логи луашечки?

Кроме того - база должна быть по хорошему в той кодировке, в которой у нас чат. Мы в СНГ и чат у нас в 1251ой кодировочке.

Автор: Angel_D 22.8.2011, 12:37

Цитата
Для вас если Windows то кодировка cp1251_general_ci !
Если вы видите через phpmyadmin кракозяблы, это нормально !

повторюсь...
Цитата
при кодировке таблиц cp1251_general_ci русский рекст даже не записывается в таблицу (буржуиньськи и цифры пишутся). т.е. даже записи о том, что сообщение было - нету, если оно с русскими символами.
если созданную запись в базе исправить ("123" поменять на "тест") - в WEB-логе кракозябы.

т.е. в базу даже не делается запись с сообщением в этой кодировке, если база в 1251.
кракозябы я вижу не в phpmyadmin - там как разтаки я вижу всё нормально, если вручную исправил - я на самой странице WEB-лога чата вижу кракозябы.

Автор: VOVKT 22.8.2011, 14:24

Цитата(Angel_D @ 22.8.2011, 13:37) *
повторюсь...

т.е. в базу даже не делается запись с сообщением в этой кодировке, если база в 1251.
кракозябы я вижу не в phpmyadmin - там как разтаки я вижу всё нормально, если вручную исправил - я на самой странице WEB-лога чата вижу кракозябы.

Посмотри в какой кодировке браузер отображает страницу и сравни её с кодировкой бд

Автор: Angel_D 22.8.2011, 15:51

1251 и страница, и таблица

Автор: VOVKT 22.8.2011, 17:31

попробуй в файле index.php
после(26 строка)

Код
mysql_select_db($b_base,$db);


добавь
Код
mysql_query("SET NAMES 'cp1251'");

Автор: Angel_D 23.8.2011, 8:59

Цитата
попробуй в файле index.php
после(26 строка)

спасибо. часть проблемы решена.
но осталась еще одна - в базу cp1251 не добавляются русскосимвольные записи.
RusHub 2.3.6 х64

Автор: VOVKT 23.8.2011, 9:33

попробуй явно указать кодировку, незнаю поможет это или нет
Я незнаю как делать запросы в lua но из скрипта я прикинул) что примерно так)
Добавь после(81 строка)

Код
local con = assert (env:connect(sNameDB, sUserDB, sPasswordDB, sAdressDB, sPortDB))

Код
con:execute("SET NAMES 'cp1251'")
con:execute("SET character_set_client = cp1251")
con:execute("SET character_set_connection = cp1251")

Автор: Angel_D 23.8.2011, 17:53

VOVKT, благодарю. Всё заработало.
Ну... Пока что. big_smile.gif

сорри за беспокойство, но хотелось добавить... в файле showlog.php, дабы не ощущать проблем с кодировкой тоже надо сделать следующее...

Цитата
после
Код
mysql_select_db($b_base,$db);



добавить
Код
mysql_query("SET NAMES 'cp1251'");